mem0ai/mem0 · error · Error
Unknown providerOverride '${providerOverride}'. Valid provid
Error message
Unknown providerOverride '${providerOverride}'. Valid providers: ${PROVIDERS.join(", ")} What it means
extractProvider() maps a Bedrock model id to a provider family. If you pass an explicit providerOverride, it must be one of the recognized list (ai21, amazon, anthropic, cohere, meta, mistral, stability, writer, deepseek, gpt-oss, perplexity, snowflake, titan, command, j2, llama, minimax); anything else throws immediately with the valid options enumerated.
Source
Thrown at mem0-ts/src/oss/src/llms/aws_bedrock.ts:38
"snowflake",
"titan",
"command",
"j2",
"llama",
"minimax",
];
/**
* Extract the model-family provider from a Bedrock model id
* (e.g. `anthropic.claude-3-sonnet-...` -> `anthropic`).
*/
export function extractProvider(
model: string,
providerOverride?: string,
): string {
if (providerOverride) {
if (!PROVIDERS.includes(providerOverride)) {
throw new Error(
`Unknown providerOverride '${providerOverride}'. Valid providers: ${PROVIDERS.join(", ")}`,
);
}
return providerOverride;
}
for (const provider of PROVIDERS) {
const re = new RegExp(
`\\b${provider.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`,
);
if (re.test(model)) return provider;
}
throw new Error(`Unknown provider in model: ${model}`);
}
/**
* AWS Bedrock fields (awsRegion / awsAccessKeyId / awsSecretAccessKey /
* awsSessionToken / client) now live on the shared `LLMConfig`, so the
* provider is configurable through the standard typed `Memory` config path.View on GitHub (pinned to 001c235229)
Solutions
- Set providerOverride to one of the values listed in the error message, e.g. 'anthropic' or 'amazon'
- Fix casing/whitespace: the check is exact and case-sensitive
- If your model id already contains a known provider token (e.g. anthropic.claude-3-...), omit providerOverride entirely
Example fix
// before
new AWSBedrockLLM({ model: "eu.anthropic.claude-3-sonnet...", providerOverride: "claude" });
// after
new AWSBedrockLLM({ model: "eu.anthropic.claude-3-sonnet...", providerOverride: "anthropic" }); Defensive patterns
Strategy: validation
Validate before calling
const VALID_PROVIDERS = new Set(["ai21","amazon","anthropic","cohere","meta","mistral","stability","writer","deepseek","gpt-oss","perplexity","snowflake","titan","command","j2","llama","minimax"]);
if (override && !VALID_PROVIDERS.has(override)) {
throw new Error(`providerOverride '${override}' is not recognized; use a value from the Bedrock provider list`);
} Type guard
function isUnknownOverrideError(err: unknown): boolean {
return err instanceof Error && err.message.startsWith("Unknown providerOverride");
} Try / catch
try { extractProvider(model, override); }
catch (err) {
if (err instanceof Error && err.message.startsWith("Unknown providerOverride")) {
throw new Error("Fix Bedrock config: providerOverride must be a known provider family");
}
throw err;
} Prevention
- Validate providerOverride against the known list at config load time
- Prefer full Bedrock model ids (provider-prefixed) so no override is needed
- The check is case-sensitive and exact - normalize input before passing
When it happens
Trigger: Calling the Bedrock LLM with config.providerOverride set to e.g. 'openai', 'Claude', 'bedrock', or a custom inference-profile prefix; copy-pasting a provider name from a different SDK's vocabulary; case or whitespace mismatches.
Common situations: Using cross-region/custom model ids (e.g. us.anthropic... or a custom ARN) where the model prefix no longer matches a known provider, so the user adds an override with the wrong value; migrating configs from the Python SDK whose provider names differ.
Related errors
- Unknown provider in model: ${model}
- Invalid ${label} '${name}': only letters, digits, and unders
- Invalid ${label} '${name}': only letters, digits, and unders
- Invalid ${label} '${name}': only letters, digits, and unders
- Either memoryId or --all is required
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/797987f21614de69.
Report an issue: GitHub.