exo-explore/exo · error · FileNotFoundError
config.json not found in {self._model_path}
Error message
config.json not found in {self._model_path} What it means
Error "config.json not found in {self._model_path}" thrown in exo-explore/exo.
Source
Thrown at src/exo/worker/engines/mlx/vision.py:282
return None
for attr in dir(pkg): # pyright: ignore[reportAny]
cls = getattr(pkg, attr) # pyright: ignore[reportAny]
if isinstance(cls, type) and attr.endswith("ImageProcessor"):
return cls.from_pretrained(repo) # type: ignore
return None
def ensure_loaded(self) -> None:
if self._loaded:
return
self._load_weights()
self._loaded = True
def _load_weights(self) -> None:
_patch_video_processor()
logger.info(f"Loading vision weights from {self._model_path}")
config = self._load_config_json()
if not config:
raise FileNotFoundError(f"config.json not found in {self._model_path}")
vision_cfg = config.get("vision_config", {}) # type: ignore
config_mod, vision_mod = self._import_mlx_vlm("config", "vision") # type: ignore
vision_config_cls = config_mod.VisionConfig # type: ignore
vision_model_cls = vision_mod.VisionModel # type: ignore
vision_config = vision_config_cls( # type: ignore
**_filter_config(vision_config_cls, vision_cfg) # type: ignore
)
self._spatial_merge_size = getattr(vision_config, "spatial_merge_size", 2) # type: ignore
self._vision_tower = vision_model_cls(vision_config)
model_mod: Any = None
with contextlib.suppress(ImportError):
model_mod = self._import_mlx_vlm(self._config.model_type) # type: ignore
projector_cls = None
if model_mod is not None:View on GitHub (pinned to 21a54c5ea0)
When it happens
Trigger: Thrown at src/exo/worker/engines/mlx/vision.py:282 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of exo-explore/exo@21a54c5ea0 (2026-08-26).
Data as JSON: /api/errors/e251f35f13f9a4ff.
Report an issue: GitHub.