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

  1. Set providerOverride to one of the values listed in the error message, e.g. 'anthropic' or 'amazon'
  2. Fix casing/whitespace: the check is exact and case-sensitive
  3. 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

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


AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15). Data as JSON: /api/errors/797987f21614de69. Report an issue: GitHub.