zylon-ai/private-gpt · error · ValueError
Vector store '{settings.vectorstore.database}' is not suppor
Error message
Vector store '{settings.vectorstore.database}' is not supported. Available: {available} What it means
ValueError raised by VectorStoreComponent.__init__ when settings.vectorstore.database is not a key in the provider map ({'qdrant': QdrantVectorStoreFactory, **_PROVIDERS}). The message lists the sorted set of supported provider names, so it doubles as a discovery aid.
Source
Thrown at private_gpt/components/vector_store/vector_store_component.py:48
_factory: VectorStoreFactory
_embedding_component: EmbeddingComponent
@inject
def __init__(
self,
settings: Settings,
embedding_component: EmbeddingComponent,
) -> None:
from private_gpt.components.vector_store.qdrant_factory import (
QdrantVectorStoreFactory,
)
self._settings = settings
all_providers = {"qdrant": QdrantVectorStoreFactory, **_PROVIDERS}
provider = all_providers.get(settings.vectorstore.database)
if provider is None:
available = ", ".join(sorted(all_providers)) or "none"
raise ValueError(
f"Vector store '{settings.vectorstore.database}' is not supported. "
f"Available: {available}"
)
embed_dim: int = settings.vectorstore.embed_dim
embed_models = embedding_component.embed_models
if len(embed_models) > 1:
logger.warning(
"Multiple embedding models are configured, "
"but VectorStoreComponent only supports one. "
"Using the first one found: %s",
next(iter(embed_models)),
)
if embed_models:
first_embed_model = next(iter(embed_models.values()))
embed_dim = first_embed_model.embed_dim or embed_dim
View on GitHub (pinned to 4a030776a3)
Solutions
- Set vectorstore.database to one of the names listed in the error message (exact case, e.g. 'qdrant')
- If a non-default provider is wanted, install/enable the component that registers it into _PROVIDERS before startup
- Print sorted({**_PROVIDERS}) or check the error message output to confirm available names
Example fix
# before (settings) vectorstore: database: Qdrant # wrong case # after vectorstore: database: qdrant
Defensive patterns
Strategy: validation
Validate before calling
from private_gpt.components.vector_store.vector_store_component import _PROVIDERS
_ALLOWED = {"qdrant", *_PROVIDERS}
assert settings.vectorstore.database in _ALLOWED, (
f"vectorstore.database must be one of {sorted(_ALLOWED)}"
) Try / catch
try:
component = VectorStoreComponent(settings, embedding_component)
except ValueError as e:
if "is not supported" in str(e):
# read the Available list from the message, fix the setting, restart
raise Prevention
- Normalize vectorstore.database (strip/lower) in config loading
- Validate provider names at startup; this component already fails fast — keep it that way
- When adding plugins, log the effective provider map at boot
When it happens
Trigger: Setting vectorstore.database to a misspelled or unregistered value (e.g. 'Qdrant', 'chroma' when no chroma plugin registered, 'postgres'); raising happens at component construction (startup), making it fail-fast.
Common situations: Typos and case mismatches in settings/env vars (VECTORSTORE_DATABASE=qdrant vs 'Qdrant'); docs referencing a provider that requires an extra plugin registering into _PROVIDERS; version upgrades removing a provider.
Related errors
- Node store '{index_store}' is not supported. Available: {ava
- Default LLM model '{model_id}' could not be initialized: {e}
- Default model '{self._default_model_id}' not found in regist
- No model specified and no models are configured
- RemoteTokenizeTokenizer is not available with the given conf
AI-assisted analysis of zylon-ai/private-gpt@4a030776a3 (2026-08-15).
Data as JSON: /api/errors/8880863578277b63.
Report an issue: GitHub.