{"record":{"id":"bd6091fccbd3413c","repo":"mem0ai/mem0","slug":"unsupported-embedding-provider-provider","errorCode":null,"errorMessage":"Unsupported embedding provider: {provider}","messagePattern":"Unsupported embedding provider: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mem0/embeddings/configs.py","lineNumber":31,"sourceCode":"    @field_validator(\"config\")\n    def validate_config(cls, v, values):\n        provider = values.data.get(\"provider\")\n        if provider in [\n            \"openai\",\n            \"ollama\",\n            \"huggingface\",\n            \"azure_openai\",\n            \"gemini\",\n            \"vertexai\",\n            \"together\",\n            \"lmstudio\",\n            \"langchain\",\n            \"aws_bedrock\",\n            \"fastembed\",\n        ]:\n            return v\n        else:\n            raise ValueError(f\"Unsupported embedding provider: {provider}\")\n","sourceCodeStart":13,"sourceCodeEnd":32,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0/embeddings/configs.py#L13-L32","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"# before\nembedder={\"provider\": \"sentence_transformers\"}\n\n# after\nembedder={\"provider\": \"langchain\", \"config\": {\"model\": HuggingFaceEmbeddings(model_name=\"sentence-transformers/all-MiniLM-L6-v2\")}}","handlingStrategy":"validation","validationCode":"SUPPORTED = {\"openai\", \"huggingface\", \"azure_openai\", \"gemini\", \"vertexai\", \"together\", \"lmstudio\", \"langchain\", \"aws_bedrock\", \"fastembed\", \"mem0\", \"ollama\"}\nif provider not in SUPPORTED:\n    raise ConfigError(f\"embedder provider must be one of {sorted(SUPPORTED)}, got {provider!r}\")","typeGuard":"def is_supported_embedder(p: str) -> bool:\n    return p in SUPPORTED","tryCatchPattern":null,"preventionTips":["Centralize provider strings as constants instead of free-typed strings","For embedders outside the list, standardize on the langchain provider bridge"],"tags":["embeddings","config","validation","provider-registry"],"backgroundTag":null,"analyzedSha":"001c235229be8795e3834520467bd0d661ed8f34","analyzedAt":"2026-08-15T01:55:42.685Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}