{"record":{"id":"de227ee79d8688c6","repo":"blakeblackshear/frigate","slug":"memryx-sdk-is-not-installed-install-it-and-set-up","errorCode":null,"errorMessage":"MemryX SDK is not installed. Install it and set up MIX environment.","messagePattern":"MemryX SDK is not installed\\. Install it and set up MIX environment\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"critical","filePath":"frigate/detectors/plugins/memryx.py","lineNumber":63,"sourceCode":"    )\n\n\nclass MemryXDetector(DetectionApi):\n    type_key = DETECTOR_KEY  # Set the type key\n    supported_models = [\n        ModelTypeEnum.ssd,\n        ModelTypeEnum.yolonas,\n        ModelTypeEnum.yologeneric,  # Treated as yolov9 in MemryX implementation\n        ModelTypeEnum.yolox,\n    ]\n\n    def __init__(self, detector_config):\n        \"\"\"Initialize MemryX detector with the provided configuration.\"\"\"\n        try:\n            # Import MemryX SDK\n            from memryx import AsyncAccl\n        except ModuleNotFoundError:\n            raise ImportError(\n                \"MemryX SDK is not installed. Install it and set up MIX environment.\"\n            ) from None\n            return\n\n        # Initialize stop_event as None, will be set later by set_stop_event()\n        self.stop_event = None\n\n        model_cfg = getattr(detector_config, \"model\", None)\n\n        # Check if model_type was explicitly set by the user\n        if \"model_type\" in getattr(model_cfg, \"__fields_set__\", set()):\n            detector_config.model.model_type = model_cfg.model_type\n        else:\n            logger.info(\n                \"model_type not set in config — defaulting to yolonas for MemryX.\"\n            )\n            detector_config.model.model_type = ModelTypeEnum.yolonas\n","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/blakeblackshear/frigate/blob/ca18b8dc131ccb3e086f13a780853b775ef13426/frigate/detectors/plugins/memryx.py#L45-L81","documentation":"The MemryX detector requires the memryX Python SDK (memryx package with AsyncAccl); its absence raises ImportError with guidance to install the SDK and set up the MIX environment. This happens at plugin __init__ before any configuration processing.","triggerScenarios":"Configuring detector type memryx on a system where 'from memryx import AsyncAccl' raises ModuleNotFoundError: non-MemryX hardware, standard Frigate image without the MX SDK, or incomplete MIX container setup.","commonSituations":"Running the stock Frigate docker image on MemryX hardware without the SDK layer; testing on x86 without the MX3/MX4 accelerator; SDK installed for the wrong python version or missing MIX runtime env vars.","solutions":["Use the MemryX-provided Frigate image/MIX environment that bundles the memryx SDK","Install the MemryX SDK per vendor docs into the container (pip package plus matching runtime) and ensure MIX env is configured","On non-MemryX hardware, choose a different detector type (cpu, onnx, etc.)"],"exampleFix":"# before\ndetectors:\n  memryx:\n    type: memryx\n# after (non-MemryX hardware)\ndetectors:\n  cpu:\n    type: cpu","handlingStrategy":"validation","validationCode":"def memryx_available() -> bool:\n    try:\n        from memryx import AsyncAccl  # noqa: F401\n        return True\n    except ModuleNotFoundError:\n        return False","typeGuard":null,"tryCatchPattern":"try:\n    detector = MemryXDetector(config)\nexcept ImportError as e:\n    if 'MemryX SDK' in str(e):\n        raise SystemExit('Use the MemryX MIX Frigate environment') from None\n    raise","preventionTips":["Run the MemryX-provided Frigate/MIX image on MX hardware","Probe for the SDK before selecting the memryx detector type","Keep detector config environment-conditional on hardware"],"tags":["memryx","import-error","module-not-found","sdk","detector"],"backgroundTag":"optional-dependency-not-installed","analyzedSha":"ca18b8dc131ccb3e086f13a780853b775ef13426","analyzedAt":"2026-08-27T11:28:05.618Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}