mem0ai/mem0 · error · ValueError
Unsupported vector store provider: {provider}
Error message
Unsupported vector store provider: {provider} What it means
ValueError from VectorStoreConfig's model_validator (mem0/vector_stores/configs.py) when self.provider is not a key in _provider_configs. The validator is the dispatcher that dynamically imports mem0.configs.vector_stores.<provider>, so an unknown or misspelled provider name aborts config construction before any backend is touched.
Source
Thrown at mem0/vector_stores/configs.py:47
"elasticsearch": "ElasticsearchConfig",
"vertex_ai_vector_search": "GoogleMatchingEngineConfig",
"opensearch": "OpenSearchConfig",
"supabase": "SupabaseConfig",
"weaviate": "WeaviateConfig",
"faiss": "FAISSConfig",
"langchain": "LangchainConfig",
"s3_vectors": "S3VectorsConfig",
"turbopuffer": "TurbopufferConfig",
"oracledb": "OracleAIVectorSearchConfig",
}
@model_validator(mode="after")
def validate_and_create_config(self) -> "VectorStoreConfig":
provider = self.provider
config = self.config
if provider not in self._provider_configs:
raise ValueError(f"Unsupported vector store provider: {provider}")
module = __import__(
f"mem0.configs.vector_stores.{provider}",
fromlist=[self._provider_configs[provider]],
)
config_class = getattr(module, self._provider_configs[provider])
if config is None:
config = {}
if not isinstance(config, dict):
if not isinstance(config, config_class):
raise ValueError(f"Invalid config type for provider {provider}")
return self
# also check if path in allowed kays for pydantic model, and whether config extra fields are allowed
if "path" not in config and "path" in config_class.__annotations__:
config["path"] = f"/tmp/{provider}"View on GitHub (pinned to 001c235229)
Solutions
- Correct the provider string to match a key of VectorStoreConfig._provider_configs exactly (lowercase snake_case, e.g. 'qdrant', 'chroma', 'azure_mysql').
- Print valid providers in your setup: from mem0.vector_stores.configs import VectorStoreConfig; print(VectorStoreConfig._provider_configs.keys()).
- Validate provider names against that mapping in config-loading code and fail with a clear message at startup.
Example fix
# before
config = {"vector_store": {"provider": "qdrant ", "config": {...}}} # trailing space -> ValueError
# after
config = {"vector_store": {"provider": "qdrant", "config": {...}}} Defensive patterns
Strategy: validation
Validate before calling
from mem0.vector_stores.configs import VectorStoreConfig
SUPPORTED_PROVIDERS = set(VectorStoreConfig._provider_configs)
if cfg_provider not in SUPPORTED_PROVIDERS:
raise ValueError(f"provider {cfg_provider!r} unsupported; choose from {sorted(SUPPORTED_PROVIDERS)}")
vector_store_config = VectorStoreConfig(provider=cfg_provider, config=cfg) Type guard
def is_supported_vector_store_provider(p) -> bool:
from mem0.vector_stores.configs import VectorStoreConfig
return isinstance(p, str) and p in VectorStoreConfig._provider_configs Prevention
- Validate provider strings against the mapping at config load time and strip whitespace.
- Fail fast with the list of valid providers in your own error message.
- Pin the mem0ai version and re-validate providers after upgrades.
When it happens
Trigger: Building MemoryConfig with vector_store={'provider': 'qdrnat'} (typo), a provider name with wrong casing ('Chroma'), or a genuinely unsupported backend name. Also triggered by passing an empty or None provider where the default does not match the mapping.
Common situations: Typos in YAML/JSON/ENV-driven config; upgrading mem0 where a provider was renamed or removed; copy-pasting a provider string from docs of a newer/older version than the installed one.
Related errors
- Extra fields not allowed: {', '.join(extra_fields)}. Please
- Extra fields not allowed: {', '.join(extra_fields)}. Please
- A valid PostgreSQL connection string must be provided
- Extra fields not allowed: {', '.join(extra_fields)}. Please
- Extra fields not allowed: {', '.join(extra_fields)}. Please
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/428646ba34908020.
Report an issue: GitHub.