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

  1. Pick a provider string implemented in VectorStoreFactory.create at mem0-ts/src/oss/src/utils/factory.ts.
  2. Trim/clean the provider string if it comes from env vars or user input.
  3. 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

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


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