blakeblackshear/frigate · error · Exception

Model {model_path} is unsupported. Provide your own model or

Error message

Model {model_path} is unsupported. Provide your own model or choose one of the following: {supported_models_str}

What it means

The configured model_path for the Axengine detector is neither a known built-in model filename (which would be resolved/downloaded from the model cache) nor a path the plugin recognizes, so parse_model_input refuses it. Only a fixed set of prebuilt models plus user-supplied .axmodel files on disk are supported.

Source

Thrown at frigate/detectors/plugins/axengine.py:74

        model_props = {}
        model_props["preset"] = True

        model_matched = False

        for model_type, pattern in supported_models.items():
            if re.match(pattern, model_path):
                model_matched = True
                model_props["model_type"] = model_type

        if model_matched:
            model_props["filename"] = model_path + ".axmodel"
            model_props["path"] = model_cache_dir + model_props["filename"]

            if not os.path.isfile(model_props["path"]):
                self.download_model(model_props["filename"])
        else:
            supported_models_str = ", ".join(model[1:-1] for model in supported_models)
            raise Exception(
                f"Model {model_path} is unsupported. Provide your own model or choose one of the following: {supported_models_str}"
            )
        return model_props

    def download_model(self, filename):
        if not os.path.isdir(model_cache_dir):
            os.mkdir(model_cache_dir)

        HF_ENDPOINT = os.environ.get("HF_ENDPOINT", "https://huggingface.co")
        urllib.request.urlretrieve(
            f"{HF_ENDPOINT}/AXERA-TECH/frigate-resource/resolve/axmodel/{filename}",
            model_cache_dir + filename,
        )

    def detect_raw(self, tensor_input):
        results = None
        results = self.session.run(None, {"images": tensor_input})
        if self.detector_config.model.model_type == ModelTypeEnum.yologeneric:

View on GitHub (pinned to ca18b8dc13)

Solutions

  1. Check the error's supported model list and use one of those exact filenames in model.path
  2. Or provide your own compiled .axmodel file path on disk accessible to the container
  3. Verify the path/filename spelling and that the file is mounted into the container

Example fix

# before
detectors:
  axengine:
    type: axengine
    model:
      path: yolov9-tiny-wrong-name
# after
detectors:
  axengine:
    type: axengine
    model:
      path: /models/my_model.axmodel  # or a listed supported model
Defensive patterns

Strategy: validation

Validate before calling

# validate before startup against the plugin's supported list
SUPPORTED = {...}  # from error message or plugin source
assert model_path in SUPPORTED or os.path.isfile(model_path), f'use one of {SUPPORTED}'

Try / catch

try:
    detector = AxengineDetector(config)
except Exception as e:
    if 'unsupported' in str(e):
        logger.error('Switch model.path to a listed model or a local .axmodel')
    raise

Prevention

When it happens

Trigger: Calling parse_model_input (from Axengine detector __init__) with model_path set to a name not in the plugin's supported_models mapping and not an existing custom model file, e.g. a typo like 'yolov9-tiny-axera' or a filename without the expected suffix.

Common situations: Typo in model.path in frigate config; referencing a model that exists for other detectors (e.g. a .tflite name) with the axengine detector; assuming a new model variant is bundled when it is not.

Related errors


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