mem0ai/mem0 · error · Error
Unsupported reranker provider: ${provider}
Error message
Unsupported reranker provider: ${provider} What it means
Thrown by RerankerFactory.create when the reranker provider does not match a supported case (cohere, zero_entropy, sentence_transformer, huggingface, llm_reranker). It fires during construction of the reranker pipeline when the reranker.provider config string is unrecognized.
Source
Thrown at mem0-ts/src/oss/src/utils/factory.ts:240
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(
config,
"Xenova/bge-reranker-base",
512,
);
case "llm_reranker": {
const llm = RerankerFactory.buildLLMRerankerLLM(config);
return new LLMReranker(config, llm);
}
default:
throw new Error(`Unsupported reranker provider: ${provider}`);
}
}
private static buildLLMRerankerLLM(config: RerankerConfig): LLM {
const nested = config.llm;
let llmProvider: string;
let llmConfig: LLMConfig;
if (nested) {
llmProvider = nested.provider || config.provider || "openai";
llmConfig = { ...(nested.config || {}) };
if (llmConfig.model === undefined) {
llmConfig.model = config.model ?? "gpt-5-mini";
}
if (llmConfig.temperature === undefined) {
llmConfig.temperature = config.temperature ?? 0.0;
}
if (llmConfig.maxTokens === undefined) {View on GitHub (pinned to 001c235229)
Solutions
- Use one of the exact reranker provider ids in RerankerFactory.create (cohere, zero_entropy, sentence_transformer, huggingface, llm_reranker).
- For local cross-encoder reranking use 'huggingface' or 'sentence_transformer', not the class name.
- For LLM-based reranking use 'llm_reranker' and supply the nested llm config.
Example fix
// before
reranker: { provider: 'cross-encoder', config: {} }
// after
reranker: { provider: 'huggingface', config: {} } Defensive patterns
Strategy: validation
Validate before calling
const RERANKERS = ['cohere','zero_entropy','sentence_transformer','huggingface','llm_reranker'];
function assertReranker(provider: string) {
if (!RERANKERS.includes(provider.toLowerCase())) throw new Error(`Unsupported reranker '${provider}'`);
} Type guard
const isKnownReranker = (p: string): boolean => RERANKERS.includes(p.toLowerCase());
Try / catch
try { new Memory(cfg) } catch (e) { if (e instanceof Error && /Unsupported reranker provider/.test(e.message)) { cfg.reranker = undefined; return new Memory(cfg); } throw e; } Prevention
- Treat reranking as optional: catch factory errors and retry without the reranker.
- Use the factory's provider ids, not class names like 'CrossEncoderReranker'.
When it happens
Trigger: new Memory({ reranker: { provider: 'cross-encoder', config: {...} } }) (implementation class name instead of provider id), or reranker: { provider: 'hf' } instead of 'huggingface'.
Common situations: Reranker names differ from the Python SDK or from the underlying library names; enabling reranking for the first time by guessing the provider identifier; stale docs after a provider rename.
Related errors
- Unsupported embedder provider: ${provider}
- Unsupported LLM provider: ${provider}
- Unsupported vector store provider: ${provider}
- Unsupported history store provider: ${provider}
- Unsupported reranker provider: {provider_name}
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/ba7cdedb518c7c73.
Report an issue: GitHub.