mem0ai/mem0 · error · Error
Method 'list' not supported by LangchainVectorStore wrapper.
Error message
Method 'list' not supported by LangchainVectorStore wrapper.
What it means
list() is unimplemented because Langchain's core VectorStore interface has no enumeration/scroll capability, and the wrapper cannot generically enumerate documents across heterogeneous stores. It throws (with a console.error) instead of returning an incomplete or fabricated listing.
Source
Thrown at mem0-ts/src/oss/src/vector_stores/langchain.ts:205
} else {
console.error(
`LangchainVectorStore: The underlying Langchain store instance does not seem to support a 'delete' method.`,
);
throw new Error(
"Method 'delete' not available on the provided Langchain VectorStore client.",
);
}
}
async list(
filters?: SearchFilters,
topK: number = 100,
): Promise<[VectorStoreResult[], number]> {
// No standard list method in Langchain core interface.
console.error(
`LangchainVectorStore: The 'list' method is not supported by the generic LangchainVectorStore wrapper.`,
);
throw new Error(
"Method 'list' not supported by LangchainVectorStore wrapper.",
);
// Could potentially be implemented if the underlying store has a specific list/scroll/query capability.
}
async deleteCol(): Promise<void> {
console.error(
`LangchainVectorStore: The 'deleteCol' method is not supported by the generic LangchainVectorStore wrapper.`,
);
throw new Error(
"Method 'deleteCol' not supported by LangchainVectorStore wrapper.",
);
}
// --- Wrapper-Specific Methods (In-Memory User ID) ---
async getUserId(): Promise<string> {
return this.storeUserId;View on GitHub (pinned to 001c235229)
Solutions
- If the underlying store has its own enumeration API (e.g. FAISS index traversal, Chroma collection.get), call it directly and manage ids yourself.
- Maintain your own id registry (DB/file) of inserted memory ids so listing/deleting can be done via targeted delete calls.
- Switch to a provider with native list support (qdrant, chroma, pgvector, elasticsearch) if enumeration-based Memory APIs are required.
Defensive patterns
Strategy: fallback
Validate before calling
// Keep an id registry so list() is never required:
await fs.writeFile(`ids/${memoryId}.txt`, JSON.stringify(payload));
// enumeration = reading the registry instead of store.list() Try / catch
try {
const [results, total] = await store.list(filters, topK);
} catch (e) {
if (e instanceof Error && e.message.includes("Method 'list' not supported")) {
// fallback: enumerate via your own id registry + targeted deletes/lookups
}
throw e;
} Prevention
- Do not call memory.getAll()/deleteAll() with the langchain provider.
- Maintain your own registry of inserted memory ids.
- Choose a provider with native list/scroll if enumeration is needed.
When it happens
Trigger: Calling store.list(filters, topK) directly, or any Memory flow (e.g. delete-all, history listing, get-all) that internally enumerates vectors while using the langchain provider.
Common situations: Calling memory.getAll() or memory.deleteAll() over a langchain-backed Memory instance; migrating an app from a provider that supports list.
Related errors
- Method 'get' not reliably supported by LangchainVectorStore
- Method 'update' not supported by LangchainVectorStore wrappe
- Method 'delete' not available on the provided Langchain Vect
- Method 'deleteCol' not supported by LangchainVectorStore wra
- apiKey is required for Mem0Memory
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/cbe3842eb9a61dbd.
Report an issue: GitHub.