mem0ai/mem0 · error · ValueError
Unsupported reranker provider: {provider_name}
Error message
Unsupported reranker provider: {provider_name} What it means
Thrown by RerankerFactory.create when provider_name is not in its provider_to_class mapping. Only five reranker keys are registered: cohere, sentence_transformer, zero_entropy, llm_reranker, huggingface. Any other string in the reranker config is rejected before config parsing.
Source
Thrown at mem0/utils/factory.py:262
@classmethod
def create(cls, provider_name: str, config: Optional[Union[BaseRerankerConfig, Dict]] = None, **kwargs):
"""
Create a reranker instance based on the provider and configuration.
Args:
provider_name: The reranker provider (e.g., 'cohere', 'sentence_transformer')
config: Configuration object or dictionary
**kwargs: Additional configuration parameters
Returns:
Reranker instance configured for the specified provider
Raises:
ImportError: If the provider class cannot be imported
ValueError: If the provider is not supported
"""
if provider_name not in cls.provider_to_class:
raise ValueError(f"Unsupported reranker provider: {provider_name}")
class_path, config_class = cls.provider_to_class[provider_name]
# Handle configuration
if config is None:
config = config_class(**kwargs)
elif isinstance(config, dict):
config = config_class(**config, **kwargs)
elif not isinstance(config, BaseRerankerConfig):
raise ValueError(f"Config must be a {config_class.__name__} instance or dict")
# Import and create the reranker class
try:
reranker_class = load_class(class_path)
except (ImportError, AttributeError) as e:
raise ImportError(f"Could not import reranker for provider '{provider_name}': {e}")
return reranker_class(config)View on GitHub (pinned to 001c235229)
Solutions
- Use one of: cohere, sentence_transformer, zero_entropy, llm_reranker, huggingface
- For GPT/OpenAI-based reranking use 'llm_reranker', not 'openai'
- Use exactly 'sentence_transformer' (underscore), never 'sentence-transformer'
- Print RerankerFactory.provider_to_class.keys() to confirm available keys in your installed version
Example fix
// before
config = {"reranker": {"provider": "sentence-transformer", "config": {"model": "..."}}}
Memory.from_config(config)
# after
config = {"reranker": {"provider": "sentence_transformer", "config": {"model": "..."}}}
Memory.from_config(config) Defensive patterns
Strategy: validation
Validate before calling
from mem0.utils.factory import RerankerFactory
provider = cfg.get('reranker', {}).get('provider')
if provider is not None and provider not in RerankerFactory.provider_to_class:
raise ConfigError(f"unknown reranker {provider!r}; valid: {sorted(RerankerFactory.provider_to_class)}") Type guard
def is_known_reranker(p: str) -> bool:
from mem0.utils.factory import RerankerFactory
return isinstance(p, str) and p in RerankerFactory.provider_to_class Try / catch
try:
reranker = RerankerFactory.create(provider, cfg)
except ValueError as e:
if 'Unsupported reranker provider' in str(e):
raise ConfigError(str(e)) from e
raise Prevention
- Only five reranker keys exist: cohere, sentence_transformer, zero_entropy, llm_reranker, huggingface
- Underscores, never hyphens, in 'sentence_transformer'
- For OpenAI-model reranking the key is 'llm_reranker'
When it happens
Trigger: Setting config {'reranker': {'provider': 'openai'}} — use 'llm_reranker' for LLM-based reranking; using 'sentence-transformer' with a hyphen instead of 'sentence_transformer'; using 'hf' instead of 'huggingface'; using a hosted-platform reranker name that does not exist in the OSS factory.
Common situations: Enabling reranking in MemoryConfig for the first time and guessing the provider key; hyphen/underscore confusion from docs or blog posts; assuming any embedder provider can also rerank.
Related errors
- Unsupported reranker provider: ${provider}
- Unsupported Llm provider: {provider_name}
- Unsupported Embedder provider: {provider_name}
- Unsupported VectorStore provider: {provider_name}
- Config must be a {config_class.__name__} instance or dict
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/bce4dfc34caa6d20.
Report an issue: GitHub.