{"record":{"id":"e22d065b72862b2b","repo":"mem0ai/mem0","slug":"unsupported-vectorstore-provider-provider-name","errorCode":null,"errorMessage":"Unsupported VectorStore provider: {provider_name}","messagePattern":"Unsupported VectorStore provider: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mem0/utils/factory.py","lineNumber":218,"sourceCode":"        \"langchain\": \"mem0.vector_stores.langchain.Langchain\",\n        \"s3_vectors\": \"mem0.vector_stores.s3_vectors.S3Vectors\",\n        \"baidu\": \"mem0.vector_stores.baidu.BaiduDB\",\n        \"cassandra\": \"mem0.vector_stores.cassandra.CassandraDB\",\n        \"neptune\": \"mem0.vector_stores.neptune_analytics.NeptuneAnalyticsVector\",\n        \"turbopuffer\": \"mem0.vector_stores.turbopuffer.TurbopufferDB\",\n        \"oracledb\": \"mem0.vector_stores.oracledb.OracleAIVectorSearch\",\n    }\n\n    @classmethod\n    def create(cls, provider_name, config):\n        class_type = cls.provider_to_class.get(provider_name)\n        if class_type:\n            if not isinstance(config, dict):\n                config = config.model_dump()\n            vector_store_instance = load_class(class_type)\n            return vector_store_instance(**config)\n        else:\n            raise ValueError(f\"Unsupported VectorStore provider: {provider_name}\")\n\n    @classmethod\n    def reset(cls, instance):\n        instance.reset()\n        return instance\n\n\nclass RerankerFactory:\n    \"\"\"\n    Factory for creating reranker instances with appropriate configurations.\n    Supports provider-specific configs following the same pattern as other factories.\n    \"\"\"\n\n    # Provider mappings with their config classes\n    provider_to_class = {\n        \"cohere\": (\"mem0.reranker.cohere_reranker.CohereReranker\", CohereRerankerConfig),\n        \"sentence_transformer\": (\n            \"mem0.reranker.sentence_transformer_reranker.SentenceTransformerReranker\",","sourceCodeStart":200,"sourceCodeEnd":236,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0/utils/factory.py#L200-L236","documentation":"Thrown by VectorStoreFactory.create when provider_name is not a key in its provider_to_class mapping. Mem0 registers 26 vector store keys (qdrant, chroma, pgvector, milvus, upstash_vector, azure_ai_search, azure_mysql, pinecone, mongodb, redis, valkey, databricks, elasticsearch, vertex_ai_vector_search, opensearch, supabase, weaviate, faiss, langchain, s3_vectors, baidu, cassandra, neptune, turbopuffer, oracledb) and rejects everything else.","triggerScenarios":"Setting vector_store.provider to 'postgres' instead of 'pgvector'; using 'azure_search' instead of 'azure_ai_search'; using 'vertexai' instead of 'vertex_ai_vector_search'; using 'elastic' instead of 'elasticsearch'; using 'memory' or 'in_memory' instead of a real backend; calling VectorStoreFactory.create directly with a class name instead of the registry key.","commonSituations":"Config copied from an older mem0 version where a key was renamed; assuming the vector store name matches the product's marketing name; mixing up embedder keys ('vertexai') with vector store keys ('vertex_ai_vector_search').","solutions":["Set vector_store.provider to an exact key of VectorStoreFactory.provider_to_class (print it at runtime if unsure)","Use 'pgvector' for Postgres, 'azure_ai_search' for Azure AI Search, 'vertex_ai_vector_search' for Vertex AI","For unlisted backends, route through the 'langchain' vector store provider","Verify the key exists in your installed mem0 version — new stores are added over releases"],"exampleFix":"// before\nconfig = {\"vector_store\": {\"provider\": \"postgres\", \"config\": {...}}}\nMemory.from_config(config)\n\n# after\nconfig = {\"vector_store\": {\"provider\": \"pgvector\", \"config\": {...}}}\nMemory.from_config(config)","handlingStrategy":"validation","validationCode":"from mem0.utils.factory import VectorStoreFactory\nprovider = cfg['vector_store']['provider']\nif provider not in VectorStoreFactory.provider_to_class:\n    raise ConfigError(f\"unknown vector store {provider!r}; valid: {sorted(VectorStoreFactory.provider_to_class)}\")","typeGuard":"def is_known_vector_store(p: str) -> bool:\n    from mem0.utils.factory import VectorStoreFactory\n    return isinstance(p, str) and p in VectorStoreFactory.provider_to_class","tryCatchPattern":"try:\n    memory = Memory.from_config(config)\nexcept ValueError as e:\n    if 'Unsupported VectorStore provider' in str(e):\n        raise ConfigError(str(e)) from e\n    raise","preventionTips":["Use exact registry keys: 'pgvector' not 'postgres', 'azure_ai_search' not 'azure_search'","Validate provider key against VectorStoreFactory.provider_to_class in config loading","Add a unit test that your shipped config parses with the mem0 version in the lockfile"],"tags":["configuration","vector-store","factory","validation"],"backgroundTag":null,"analyzedSha":"001c235229be8795e3834520467bd0d661ed8f34","analyzedAt":"2026-08-15T01:55:42.685Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}