RyanCodrai/turbovec · error · FileNotFoundError
missing one of / under
Error message
missing one of {_STORE_FILENAME}/{_INDEX_FILENAME} under {folder} What it means
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.
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.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at turbovec-python/python/turbovec/agno.py:1209 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of RyanCodrai/turbovec@ccab9f325e (2026-09-06).
Data as JSON: /api/errors/0a8fb8631567de2b.
Report an issue: GitHub.
Appendix: source
Thrown at turbovec-python/python/turbovec/agno.py:1209
"dimensions": self.dimensions,
# Recorded so a later create()/load restores the mode the
# vectors were written under (v2+).
"distance": self.distance.value,
}
# Atomic: serializes in memory first, then temp-file + replace,
# so a failed save can't destroy a previous store at this path.
atomic_save(
self._index,
folder / _INDEX_FILENAME,
payload,
folder / _STORE_FILENAME,
)
def _load_from(self, folder: Path) -> None:
side_car = folder / _STORE_FILENAME
index_file = folder / _INDEX_FILENAME
if not side_car.exists() or not index_file.exists():
raise FileNotFoundError(
f"missing one of {_STORE_FILENAME}/{_INDEX_FILENAME} under {folder}"
)
with open(side_car) as f:
state = json.load(f)
version = state.get("schema_version", 0)
check_schema_version(
version,
_DOCSTORE_SCHEMA_COMPAT,
prefix=f"{_STORE_FILENAME} has schema_version",
)
if state.get("dimensions") != self.dimensions:
raise ValueError(
f"persisted dimensions={state.get('dimensions')} does not "
f"match this store's embedder dimensions={self.dimensions}"
)
# Similarity mode of the persisted vectors. The construct-then-
# create() API shape means the store already has a mode when the
# load runs, so a *recorded* mode that conflicts with it is anView on GitHub (pinned to ccab9f325e)