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

  1. Correct the spelling to an allowed provider string (use underscores: azure_openai, aws_bedrock, lm_studio/lmstudio as listed)
  2. If you need an arbitrary embedder, use provider='langchain' and pass a LangChain Embeddings instance
  3. 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

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


AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15). Data as JSON: /api/errors/bd6091fccbd3413c. Report an issue: GitHub.