mem0ai/mem0 · error · Error
Unsupported vector store provider: ${provider}
Error message
Unsupported vector store provider: ${provider} What it means
Thrown by VectorStoreFactory.create when the vector store provider string does not match any case (memory, baidu, qdrant, s3vectors, turbopuffer, milvus, mongodb, weaviate, oracledb, and others). The factory maps the vectorStore.provider config value to a concrete VectorStore implementation; an unrecognized name reaches the default branch and throws.
Source
Thrown at mem0-ts/src/oss/src/utils/factory.ts:212
case "cassandra":
return new CassandraDB(config as any);
case "pinecone":
return new PineconeDB(config as any);
case "s3-vectors":
case "s3_vectors":
return new S3Vectors(config as any);
case "turbopuffer":
return new TurbopufferDB(config as any);
case "milvus":
return new Milvus(config as any);
case "mongodb":
return new MongoDB(config as any);
case "weaviate":
return new WeaviateDB(config as any);
case "oracledb":
return new OracleAIVectorSearch(config as any);
default:
throw new Error(`Unsupported vector store provider: ${provider}`);
}
}
}
export class RerankerFactory {
static create(provider: string, config: RerankerConfig): Reranker {
switch (provider.toLowerCase()) {
case "cohere":
return new CohereReranker(config);
case "zero_entropy":
return new ZeroEntropyReranker(config);
case "sentence_transformer":
return new CrossEncoderReranker(
config,
"Xenova/ms-marco-MiniLM-L-6-v2",
);
case "huggingface":
return new CrossEncoderReranker(View on GitHub (pinned to 001c235229)
Solutions
- Pick a provider string implemented in VectorStoreFactory.create at mem0-ts/src/oss/src/utils/factory.ts.
- Trim/clean the provider string if it comes from env vars or user input.
- If the store is unsupported in TS, use the hosted MemoryClient or a supported store as a bridge.
Example fix
// before
vectorStore: { provider: 'pgvector', config: {...} }
// after
vectorStore: { provider: 'qdrant', config: { url: 'http://localhost:6333' } } Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED_STORES = ['memory','baidu','qdrant','s3vectors','turbopuffer','milvus','mongodb','weaviate','oracledb'];
function assertVectorStore(provider: string) {
const p = provider.trim().toLowerCase();
if (!SUPPORTED_STORES.includes(p)) throw new Error(`Unsupported vector store '${provider}'`);
return p;
} Type guard
const isKnownVectorStore = (p: string): boolean => SUPPORTED_STORES.includes(p.trim().toLowerCase());
Try / catch
try { new Memory(cfg) } catch (e) { if (e instanceof Error && e.message.startsWith('Unsupported vector store provider')) { /* surface config error */ } throw e; } Prevention
- Trim and lowercase provider strings from env/user input before use.
- Do not assume Python mem0 and mem0-ts support the same store list; check the TS factory.
- Start with provider 'memory' to validate wiring before adding a real store.
When it happens
Trigger: new Memory({ vectorStore: { provider: 'pgvector', config: {...} } }) when pgvector has no TS case; provider: 'qdrant ' with trailing whitespace; provider misspelled such as 'milvuss'.
Common situations: Assuming the TS SDK supports the same stores as Python mem0 (pgvector, chroma differences); copy-pasting a Python example into TS; version drift after provider renames.
Related errors
- Unsupported embedder provider: ${provider}
- Unsupported LLM provider: ${provider}
- Unsupported reranker provider: ${provider}
- Unsupported history store provider: ${provider}
- Cassandra vector store requires contactPoints when secureCon
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/8c29d6a6cc3fabd2.
Report an issue: GitHub.