{"record":{"id":"0a8fb8631567de2b","repo":"RyanCodrai/turbovec","slug":"missing-one-of-store-filename-index-filename","errorCode":null,"errorMessage":"missing one of {_STORE_FILENAME}/{_INDEX_FILENAME} under {folder}","messagePattern":"missing one of (.+?)/(.+?) under (.+?)","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"turbovec-python/python/turbovec/agno.py","lineNumber":1209,"sourceCode":"                \"dimensions\": self.dimensions,\n                # Recorded so a later create()/load restores the mode the\n                # vectors were written under (v2+).\n                \"distance\": self.distance.value,\n            }\n            # Atomic: serializes in memory first, then temp-file + replace,\n            # so a failed save can't destroy a previous store at this path.\n            atomic_save(\n                self._index,\n                folder / _INDEX_FILENAME,\n                payload,\n                folder / _STORE_FILENAME,\n            )\n\n    def _load_from(self, folder: Path) -> None:\n        side_car = folder / _STORE_FILENAME\n        index_file = folder / _INDEX_FILENAME\n        if not side_car.exists() or not index_file.exists():\n            raise FileNotFoundError(\n                f\"missing one of {_STORE_FILENAME}/{_INDEX_FILENAME} under {folder}\"\n            )\n        with open(side_car) as f:\n            state = json.load(f)\n        version = state.get(\"schema_version\", 0)\n        check_schema_version(\n            version,\n            _DOCSTORE_SCHEMA_COMPAT,\n            prefix=f\"{_STORE_FILENAME} has schema_version\",\n        )\n        if state.get(\"dimensions\") != self.dimensions:\n            raise ValueError(\n                f\"persisted dimensions={state.get('dimensions')} does not \"\n                f\"match this store's embedder dimensions={self.dimensions}\"\n            )\n        # Similarity mode of the persisted vectors. The construct-then-\n        # create() API shape means the store already has a mode when the\n        # load runs, so a *recorded* mode that conflicts with it is an","sourceCodeStart":1191,"sourceCodeEnd":1227,"githubUrl":"https://github.com/RyanCodrai/turbovec/blob/ccab9f325e6ce2a270a87daf01ae4e443bcf2d49/turbovec-python/python/turbovec/agno.py#L1191-L1227","documentation":"Raised in TurboQuantVectorDb._load_from (via create()) when the target folder does not contain both required files: the docstore.json side-car and index.tvim index payload. Either the store was never saved to this folder, the folder path is wrong, or one of the two files was deleted.","triggerScenarios":"Thrown at turbovec-python/python/turbovec/agno.py:1209 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Point create()/load at the folder that actually contains the saved pair.","Re-run save() from the live store if the files were never written.","Catch the FileNotFoundError in bootstrap code to fall back to creating a fresh store when no saved store exists."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ccab9f325e6ce2a270a87daf01ae4e443bcf2d49","analyzedAt":"2026-09-06T08:39:18.516Z","contentChangedAt":"2026-09-06T08:39:18.516Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}