blakeblackshear/frigate · error · ValueError
Model does not support detector type of {detector}
Error message
Model does not support detector type of {detector} What it means
The model's model_info.json declares a list of supportedDetectors and the configured detector type is not in it. Frigate stores per-model metadata when caching models; this check prevents feeding a model to a detector backend it was not converted for (e.g. an edgetpu .tflite passed to a CPU detector).
Source
Thrown at frigate/detectors/detector_config.py:178
# download the model if it doesn't exist
if not os.path.isfile(self.path):
download_url = plus_api.get_model_download_url(model_id)
r = requests.get(download_url)
with open(self.path, "wb") as f:
f.write(r.content)
# download the model info if it doesn't exist
if not os.path.isfile(model_info_path):
model_info = plus_api.get_model_info(model_id)
with open(model_info_path, "w") as f:
json.dump(model_info, f)
else:
with open(model_info_path) as f:
model_info: dict[str, Any] = json.load(f)
if detector and detector not in model_info["supportedDetectors"]:
raise ValueError(f"Model does not support detector type of {detector}")
self.width = model_info["width"]
self.height = model_info["height"]
self.input_tensor = InputTensorEnum(model_info["inputShape"])
self.input_pixel_format = PixelFormatEnum(model_info["pixelFormat"])
self.model_type = ModelTypeEnum(model_info["type"])
if model_info.get("inputDataType"):
self.input_dtype = InputDTypeEnum(model_info["inputDataType"])
# RKNN always uses NHWC
if detector == "rknn":
self.input_tensor = InputTensorEnum.nhwc
# generate list of attribute labels
self.attributes_map = {
**model_info.get("attributes", DEFAULT_ATTRIBUTE_LABEL_MAP),
**self.attributes_map,View on GitHub (pinned to ca18b8dc13)
Solutions
- Match the detector type to the model: use a model converted for the configured detector (e.g. an ONNX model for onnx detector, TFLite edgetpu model for edgetpu)
- Clear the stale model cache directory so model_info.json is regenerated for the correct model
- Provide your own model converted/exported for the intended detector backend and point model.path at it
Example fix
# before (edgetpu model with onnx detector)
detectors:
onnx:
type: onnx
model:
path: /models/yolov9c_edgetpu.tflite
# after
detectors:
edgetpu:
type: edgetpu
model:
path: /models/yolov9c_edgetpu.tflite Defensive patterns
Strategy: validation
Validate before calling
import json
def model_supports(model_info_path: str, detector: str) -> bool:
with open(model_info_path) as f:
return detector in json.load(f).get('supportedDetectors', []) Try / catch
try:
model_config.check_and_load_plus_model(detector='onnx')
except ValueError as e:
if 'does not support detector type' in str(e):
# pick a model converted for this backend
... Prevention
- Always pair models with the detector backend they were converted for
- Clear the model cache after swapping model files
- Keep model_info.json alongside custom models and accurate
When it happens
Trigger: Calling check_and_load_plus_model(detector=...) for a cached or downloaded model whose model_info.json 'supportedDetectors' list does not contain the given detector string (e.g. detector='onnx' but the model only lists 'edgetpu').
Common situations: User sets model path to a model file converted for a different backend; stale cached model_info.json in the model cache dir from a previous different model with the same filename; copy/paste detector config from docs for another detector type.
Related errors
- Failed to initialize RKNN runtime
- RKNN Lite not available
- AXEngine is not installed.
- Model {model_path} is unsupported. Provide your own model or
- Invalid model URL. Only .hef files are supported.
AI-assisted analysis of blakeblackshear/frigate@ca18b8dc13 (2026-08-27).
Data as JSON: /api/errors/cc3859f497dfc06a.
Report an issue: GitHub.