mem0ai/mem0 · error · Error
Model not supported: ${this.provider_wrapper}
Error message
Model not supported: ${this.provider_wrapper} What it means
Mem0ClassSelector's constructor validates config.provider against a static supportedProviders list and rejects anything not on it. The error exists to fail fast at provider-construction time (before any request) when the provider string is misspelled or unsupported by the Mem0 integration for Vercel AI SDK.
Source
Thrown at integrations/vercel-ai-sdk/src/mem0-provider-selector.ts:23
class Mem0ClassSelector {
modelId: string;
provider_wrapper: string;
config: Mem0ProviderSettings;
provider_config?: ProviderSettings;
static supportedProviders = ["openai", "anthropic", "cohere", "groq", "google", "gemini"];
constructor(modelId: string, config: Mem0ProviderSettings, provider_config?: ProviderSettings) {
this.modelId = modelId;
this.provider_wrapper = config.provider || "openai";
this.provider_config = provider_config;
if(config) this.config = config;
else this.config = {
provider: this.provider_wrapper,
};
// Check if provider_wrapper is supported
if (!Mem0ClassSelector.supportedProviders.includes(this.provider_wrapper)) {
throw new Error(`Model not supported: ${this.provider_wrapper}`);
}
}
createProvider(): LanguageModelV3 {
return new Mem0AITextGenerator(this.modelId, this.config , this.provider_config || {});
}
}
export { Mem0ClassSelector };
View on GitHub (pinned to 001c235229)
Solutions
- Set config.provider to a supported value (the selector's supported list includes openai, anthropic, google/gemini, groq — see provider-response-provider.ts's switch).
- Log Mem0ClassSelector.supportedProviders at startup to see the exact accepted strings for your installed version.
- Check for typos and case: values are matched exactly, 'OpenAI' !== 'openai'.
- If you need an unsupported provider, bypass the selector by supplying a custom LanguageModelV3 instance or open a feature request.
Example fix
// before
const provider = createMem0Provider({ provider: "azure" }); // throws
// after
const provider = createMem0Provider({ provider: "openai" }); Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED = ['openai', 'anthropic', 'groq', 'google', 'gemini']; // verify against your version
function assertProviderSupported(provider: string): void {
if (!SUPPORTED.includes(provider)) {
throw new Error(`Unsupported provider '${provider}'. Supported: ${SUPPORTED.join(', ')}`);
}
}
assertProviderSupported(config.provider ?? 'openai'); Type guard
const isSupportedProvider = (p: unknown): p is string => typeof p === 'string' && Mem0ClassSelector.supportedProviders.includes(p);
Prevention
- Log Mem0ClassSelector.supportedProviders once at boot and assert your configured value is in it.
- Keep provider strings lowercase and exact.
- Add a startup config schema check (zod or similar) that includes the provider enum.
When it happens
Trigger: Calling createMem0Provider (or constructing Mem0ClassSelector) with config.provider set to anything outside Mem0ClassSelector.supportedProviders — e.g. 'azure', 'mistral', 'openrouter', 'OpenAI' (wrong case), or omitting/quoting the value incorrectly so it becomes undefined-adjacent garbage. Defaults to 'openai' when unset.
Common situations: Copy-pasting provider names from other SDKs; case mismatches; using a provider the Mem0 wrapper hasn't wired up yet; renaming after a package update that changed the supported list.
Related errors
- Mem0 API key is required
- At least one message is required
- Add requires at least one of User ID, Agent ID, Run ID, or A
- Provide text or metadata to update
- Mem0 memory event ${eventId} failed: ${reason}
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/e8e0910dae5a091b.
Report an issue: GitHub.