mem0ai/mem0 · error · ValueError
Unsupported embedding provider: {provider}
Error message
Unsupported embedding provider: {provider} What it means
BaseEmbedderConfig validates embedder.provider against a hard-coded allow-list (openai, huggingface, azure_openai, gemini, vertexai, together, lmstudio, langchain, aws_bedrock, fastembed, and the ones above it in the file such as mem0/ollama/anthropic). Any other string raises ValueError('Unsupported embedding provider: ...'). The list is a literal in the validator, so adding a provider requires a code change.
Source
Thrown at mem0/embeddings/configs.py:31
@field_validator("config")
def validate_config(cls, v, values):
provider = values.data.get("provider")
if provider in [
"openai",
"ollama",
"huggingface",
"azure_openai",
"gemini",
"vertexai",
"together",
"lmstudio",
"langchain",
"aws_bedrock",
"fastembed",
]:
return v
else:
raise ValueError(f"Unsupported embedding provider: {provider}")
View on GitHub (pinned to 001c235229)
Solutions
- Correct the spelling to an allowed provider string (use underscores: azure_openai, aws_bedrock, lm_studio/lmstudio as listed)
- If you need an arbitrary embedder, use provider='langchain' and pass a LangChain Embeddings instance
- Upgrade mem0ai if the provider you want exists in a newer version
Example fix
# before
embedder={"provider": "sentence_transformers"}
# after
embedder={"provider": "langchain", "config": {"model": HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")}} Defensive patterns
Strategy: validation
Validate before calling
SUPPORTED = {"openai", "huggingface", "azure_openai", "gemini", "vertexai", "together", "lmstudio", "langchain", "aws_bedrock", "fastembed", "mem0", "ollama"}
if provider not in SUPPORTED:
raise ConfigError(f"embedder provider must be one of {sorted(SUPPORTED)}, got {provider!r}") Type guard
def is_supported_embedder(p: str) -> bool:
return p in SUPPORTED Prevention
- Centralize provider strings as constants instead of free-typed strings
- For embedders outside the list, standardize on the langchain provider bridge
When it happens
Trigger: embedder={'provider': 'sentence_transformers'} or 'cohere' or a typo like 'open_ai' / 'aws-bedrock' (hyphen instead of underscore); a provider name that exists as a vector store but not as an embedder.
Common situations: Assuming any LangChain embedder name works here; underscores vs hyphens confusion; requesting a provider added in a newer mem0 release while running an older pinned version.
Related errors
- Unknown embedder provider: ${providerId}
- Azure OpenAI requires both API key and endpoint
- Unsupported FastEmbed model "${config.model}". Supported mod
- HuggingFace embedder requires an inference endpoint. Set `hu
- Langchain embedder provider requires an initialized Langchai
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/bd6091fccbd3413c.
Report an issue: GitHub.