{"record":{"id":"e251f35f13f9a4ff","repo":"exo-explore/exo","slug":"config-json-not-found-in-self-model-path","errorCode":null,"errorMessage":"config.json not found in {self._model_path}","messagePattern":"config\\.json not found in (.+?)","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"src/exo/worker/engines/mlx/vision.py","lineNumber":282,"sourceCode":"            return None\n        for attr in dir(pkg):  # pyright: ignore[reportAny]\n            cls = getattr(pkg, attr)  # pyright: ignore[reportAny]\n            if isinstance(cls, type) and attr.endswith(\"ImageProcessor\"):\n                return cls.from_pretrained(repo)  # type: ignore\n        return None\n\n    def ensure_loaded(self) -> None:\n        if self._loaded:\n            return\n        self._load_weights()\n        self._loaded = True\n\n    def _load_weights(self) -> None:\n        _patch_video_processor()\n        logger.info(f\"Loading vision weights from {self._model_path}\")\n        config = self._load_config_json()\n        if not config:\n            raise FileNotFoundError(f\"config.json not found in {self._model_path}\")\n\n        vision_cfg = config.get(\"vision_config\", {})  # type: ignore\n\n        config_mod, vision_mod = self._import_mlx_vlm(\"config\", \"vision\")  # type: ignore\n        vision_config_cls = config_mod.VisionConfig  # type: ignore\n        vision_model_cls = vision_mod.VisionModel  # type: ignore\n\n        vision_config = vision_config_cls(  # type: ignore\n            **_filter_config(vision_config_cls, vision_cfg)  # type: ignore\n        )\n        self._spatial_merge_size = getattr(vision_config, \"spatial_merge_size\", 2)  # type: ignore\n        self._vision_tower = vision_model_cls(vision_config)\n        model_mod: Any = None\n        with contextlib.suppress(ImportError):\n            model_mod = self._import_mlx_vlm(self._config.model_type)  # type: ignore\n\n        projector_cls = None\n        if model_mod is not None:","sourceCodeStart":264,"sourceCodeEnd":300,"githubUrl":"https://github.com/exo-explore/exo/blob/21a54c5ea0230a3bec1e1a786d200126c7e34ec6/src/exo/worker/engines/mlx/vision.py#L264-L300","documentation":"Error \"config.json not found in {self._model_path}\" thrown in exo-explore/exo.","triggerScenarios":"Thrown at src/exo/worker/engines/mlx/vision.py:282 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"21a54c5ea0230a3bec1e1a786d200126c7e34ec6","analyzedAt":"2026-08-26T00:02:16.033Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}