mem0ai/mem0 · error · ValueError

Unsupported Embedder provider: {provider_name}

Error message

Unsupported Embedder provider: {provider_name}

What it means

Thrown by EmbedderFactory.create when provider_name is not in its provider_to_class mapping. Only these embedder keys are accepted: openai, ollama, huggingface, azure_openai, gemini, vertexai, together, lmstudio, langchain, aws_bedrock, fastembed (plus the special-case 'upstash_vector' with vector_config.enable_embeddings which returns MockEmbeddings).

Source

Thrown at mem0/utils/factory.py:177

        "vertexai": "mem0.embeddings.vertexai.VertexAIEmbedding",
        "together": "mem0.embeddings.together.TogetherEmbedding",
        "lmstudio": "mem0.embeddings.lmstudio.LMStudioEmbedding",
        "langchain": "mem0.embeddings.langchain.LangchainEmbedding",
        "aws_bedrock": "mem0.embeddings.aws_bedrock.AWSBedrockEmbedding",
        "fastembed": "mem0.embeddings.fastembed.FastEmbedEmbedding",
    }

    @classmethod
    def create(cls, provider_name, config, vector_config: Optional[dict]):
        if provider_name == "upstash_vector" and vector_config and vector_config.enable_embeddings:
            return MockEmbeddings()
        class_type = cls.provider_to_class.get(provider_name)
        if class_type:
            embedder_instance = load_class(class_type)
            base_config = BaseEmbedderConfig(**config)
            return embedder_instance(base_config)
        else:
            raise ValueError(f"Unsupported Embedder provider: {provider_name}")


class VectorStoreFactory:
    provider_to_class = {
        "qdrant": "mem0.vector_stores.qdrant.Qdrant",
        "chroma": "mem0.vector_stores.chroma.ChromaDB",
        "pgvector": "mem0.vector_stores.pgvector.PGVector",
        "milvus": "mem0.vector_stores.milvus.MilvusDB",
        "upstash_vector": "mem0.vector_stores.upstash_vector.UpstashVector",
        "azure_ai_search": "mem0.vector_stores.azure_ai_search.AzureAISearch",
        "azure_mysql": "mem0.vector_stores.azure_mysql.AzureMySQL",
        "pinecone": "mem0.vector_stores.pinecone.PineconeDB",
        "mongodb": "mem0.vector_stores.mongodb.MongoDB",
        "redis": "mem0.vector_stores.redis.RedisDB",
        "valkey": "mem0.vector_stores.valkey.ValkeyDB",
        "databricks": "mem0.vector_stores.databricks.Databricks",
        "elasticsearch": "mem0.vector_stores.elasticsearch.ElasticsearchDB",
        "vertex_ai_vector_search": "mem0.vector_stores.vertex_ai_vector_search.GoogleMatchingEngine",

View on GitHub (pinned to 001c235229)

Solutions

  1. Set embedder.provider to an exact key of EmbedderFactory.provider_to_class (openai, azure_openai, gemini, vertexai, together, ollama, huggingface, fastembed, lmstudio, langchain, aws_bedrock)
  2. Note it is 'vertexai' (no underscore) for embeddings but 'vertex_ai_vector_search' for the vector store
  3. For local embeddings use 'huggingface' or 'fastembed' rather than unregistered names
  4. If using Upstash vector store built-in embeddings, configure it via vector_store config with enable_embeddings, not the embedder section

Example fix

// before
config = {"embedder": {"provider": "vertex_ai"}}
Memory.from_config(config)

# after
config = {"embedder": {"provider": "vertexai"}}
Memory.from_config(config)
Defensive patterns

Strategy: validation

Validate before calling

from mem0.utils.factory import EmbedderFactory
provider = cfg['embedder']['provider']
if provider not in EmbedderFactory.provider_to_class:
    raise ConfigError(f"unknown embedder {provider!r}; valid: {sorted(EmbedderFactory.provider_to_class)}")

Type guard

def is_known_embedder(p: str) -> bool:
    from mem0.utils.factory import EmbedderFactory
    return isinstance(p, str) and p in EmbedderFactory.provider_to_class

Try / catch

try:
    memory = Memory.from_config(config)
except ValueError as e:
    if 'Unsupported Embedder provider' in str(e):
        raise ConfigError(str(e)) from e
    raise

Prevention

When it happens

Trigger: Setting config {'embedder': {'provider': 'sentence_transformers'}} (not registered — use 'huggingface' or 'sentence_transformer' reranker category instead); using 'azure' instead of 'azure_openai'; using 'vertex_ai' instead of 'vertexai'; using 'cohere' which has no embedder in this factory; enabling an embedder provider with a name that only exists in the LLM factory.

Common situations: Copy-pasting a provider name from the LLM or vector-store docs into the embedder section; assuming every provider mem0 supports for LLMs also supports embeddings; spelling 'huggingface' as 'hugging_face'.

Related errors


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