blakeblackshear/frigate · error · Exception

{self.memx_model_type} is currently not supported for memryx

Error message

{self.memx_model_type} is currently not supported for memryx. See the docs for more info on supported models.

What it means

MemryX detector output post-processing only implements branches for yolonas/ssd/yolox/yologeneric; any other ModelTypeEnum value in outputs dispatch falls through to this Exception at inference time. The configured model type is not supported by the memryx plugin.

Source

Thrown at frigate/detectors/plugins/memryx.py:860

    def process_output(self, *outputs):
        """Output callback function -- receives frames from the MX3 and triggers post-processing"""
        if self.memx_model_type == ModelTypeEnum.yologeneric:
            # Use complete YOLOv9-style postprocessing (includes NMS)
            final_detections = self.post_process_yolo_optimized(outputs)

            self.output_queue.put(final_detections)

        elif self.memx_model_type == ModelTypeEnum.yolonas:
            return self.post_process_yolonas(outputs)

        elif self.memx_model_type == ModelTypeEnum.yolox:
            return self.post_process_yolox(outputs)

        elif self.memx_model_type == ModelTypeEnum.ssd:
            return self.post_process_ssdlite(outputs)

        else:
            raise Exception(
                f"{self.memx_model_type} is currently not supported for memryx. See the docs for more info on supported models."
            )

    def set_stop_event(self, stop_event):
        """Set the stop event for graceful shutdown."""
        self.stop_event = stop_event

    def shutdown(self):
        """Gracefully shutdown the MemryX accelerator"""
        try:
            if hasattr(self, "accl") and self.accl is not None:
                self.accl.shutdown()
                logger.info("MemryX accelerator shutdown complete")
        except Exception as e:
            logger.error(f"Error during MemryX shutdown: {e}")

    def detect_raw(self, tensor_input: np.ndarray):
        """Removed synchronous detect_raw() function so that we only use async"""

View on GitHub (pinned to ca18b8dc13)

Solutions

  1. Use one of the supported model types for memryx (yolonas, ssd, yolox, yologeneric)
  2. Upgrade Frigate to a version whose memryx plugin supports your model type
  3. Re-package/label the model with a supported type if the architecture actually matches one
Defensive patterns

Strategy: validation

Validate before calling

from frigate.detectors.detector_config import ModelTypeEnum
SUPPORTED_MEMRYX = {ModelTypeEnum.yolonas, ModelTypeEnum.ssd, ModelTypeEnum.yolox, ModelTypeEnum.yologeneric}
assert config.model.model_type in SUPPORTED_MEMRYX

Try / catch

try:
    dets = detector.detect_raw(tensor)
except Exception as e:
    if 'not supported for memryx' in str(e):
        logger.error('Use a supported memryx model type')
    raise

Prevention

When it happens

Trigger: Running the memryx detector with memx_model_type set to a type with no post_process branch (e.g. a custom/other enum value), then detections arrive and process_output is called.

Common situations: Custom model zip with a model type enum the plugin does not post-process; config copy/pasted from another detector's model metadata; newer model type not yet supported by the installed Frigate version.

Related errors


AI-assisted analysis of blakeblackshear/frigate@ca18b8dc13 (2026-08-27). Data as JSON: /api/errors/44e24ae88cce3123. Report an issue: GitHub.