{"record":{"id":"40df00a668dc144f","repo":"zylon-ai/private-gpt","slug":"node-store-index-store-is-not-supported-avail","errorCode":null,"errorMessage":"Node store '{index_store}' is not supported. Available: {available}","messagePattern":"Node store '(.+?)' is not supported\\. Available: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"private_gpt/components/node_store/node_store_component.py","lineNumber":93,"sourceCode":"\ndef register_index_store(name: str, provider: IndexStoreProvider) -> None:\n    _PROVIDERS[name] = provider\n\n\n@singleton\nclass NodeStoreComponent:\n    @inject\n    def __init__(\n        self, settings: Settings, vector_store_component: VectorStoreComponent\n    ) -> None:\n        self._settings = settings\n        self._vector_store_component = vector_store_component\n\n    def index_store(self, collection: str) -> BaseIndexStore:\n        provider = _PROVIDERS.get(self._settings.node_store.index_store)\n        if provider is None:\n            available = \", \".join(sorted(_PROVIDERS)) or \"none\"\n            raise ValueError(\n                f\"Node store '{self._settings.node_store.index_store}' is not supported. \"\n                f\"Available: {available}\"\n            )\n        return provider(self._settings, collection)\n\n    @property\n    def max_nodes(self) -> int | None:\n        return self._settings.data.max_num_nodes or None\n\n    def get_nodes(\n        self,\n        collection: str,\n        artifacts: list[str] | None = None,\n        node_ids: list[str] | None = None,\n        filters: MetadataFilters | None = None,\n        limit: int | None = None,\n    ) -> list[BaseNode]:\n        vector_store = self._vector_store_component.vector_store(collection)","sourceCodeStart":75,"sourceCodeEnd":111,"githubUrl":"https://github.com/zylon-ai/private-gpt/blob/4a030776a31a901ad80b1bf4d7faa2c1a367efbb/private_gpt/components/node_store/node_store_component.py#L75-L111","documentation":"`NodeStoreComponent.index_store(collection)` resolves the configured `settings.node_store.index_store` string against the `_PROVIDERS` registry dict; an unknown value raises `ValueError` listing the supported keys. The placeholders `{index_store}`/`{available}` in the catalog are the f-string fields: the configured provider name and the sorted, comma-joined registry keys (or 'none').","triggerScenarios":"Setting `node_store.index_store` to a typo'd or non-registered value (e.g. 'postgresql' instead of 'postgres', 'Postgres' with wrong casing); referencing a provider added in a newer version while running an older build; registry empty so available prints 'none'.","commonSituations":"Hand-edited settings.yaml typos; copying config from docs of a different version; renaming of providers across releases; case-sensitivity surprises.","solutions":["Read the error's Available list and set `node_store.index_store` to one of those exact values","Check for typos/casing in settings (providers are matched case-sensitively via dict lookup)","If a provider you expect is missing, upgrade to the version that ships it or install its extra dependency"],"exampleFix":"# before\nnode_store:\n  index_store: postgresql  # typo\n\n# after\nnode_store:\n  index_store: postgres","handlingStrategy":"validation","validationCode":"from private_gpt.components.node_store.node_store_component import _PROVIDERS\n\nif settings.node_store.index_store not in _PROVIDERS:\n    raise ValueError(\n        f\"index_store must be one of {sorted(_PROVIDERS)}, got {settings.node_store.index_store!r}\"\n    )","typeGuard":"def is_supported_index_store(name: str) -> bool:\n    from private_gpt.components.node_store.node_store_component import _PROVIDERS\n    return name in _PROVIDERS","tryCatchPattern":"try:\n    node_store.index_store(collection)\nexcept ValueError as e:\n    if \"not supported\" in str(e):\n        raise ConfigurationError(str(e)) from e\n    raise","preventionTips":["Validate settings against the provider registry at app startup with a fail-fast schema check","Add a settings lint test comparing config values to _PROVIDERS keys in CI"],"tags":["configuration","node-store","provider-registry","startup"],"backgroundTag":null,"analyzedSha":"4a030776a31a901ad80b1bf4d7faa2c1a367efbb","analyzedAt":"2026-08-15T03:51:26.951Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}