n8n-io/n8n · error · Error
Unsupported embedding provider: "${provider}". Supported: ${
Error message
Unsupported embedding provider: "${provider}". Supported: ${supported} What it means
`createEmbeddingModel` splits the embedder string at `/` to get a provider key and model name, then looks up the provider in `EMBEDDING_PROVIDERS`. If the provider is not registered, it throws listing the supported keys: `openai`, `google`, `mistral`, `cohere`, `amazon`, `bedrock`. Note the embedding registry is separate from the language-model registry and has different keys (e.g. `amazon`/`bedrock` but not `aws-bedrock`).
Source
Thrown at packages/@n8n/agents/src/runtime/model/model-factory.ts:313
type EmbeddingProvider = keyof typeof EMBEDDING_PROVIDERS;
type EmbeddingModelId = `${EmbeddingProvider}/${string}`;
/**
* Create an embedding model from a "provider/model" string (e.g. "openai/text-embedding-3-small").
* Supports any AI SDK provider that exposes `.embeddingModel()`.
* The provider package must be installed at runtime.
*/
export function createEmbeddingModel(
embedderString: EmbeddingModelId | (string & {}),
options?: string | EmbeddingProviderOptions,
): EmbeddingModel {
const [provider, ...rest] = embedderString.split('/');
const modelName = rest.join('/');
const entry = EMBEDDING_PROVIDERS[provider as EmbeddingProvider];
if (!entry) {
const supported = Object.keys(EMBEDDING_PROVIDERS).join(', ');
throw new Error(`Unsupported embedding provider: "${provider}". Supported: ${supported}`);
}
const mod = require(entry.pkg) as Record<string, CreateEmbeddingProviderFn>;
const factory = mod[entry.factory];
const providerOptions = typeof options === 'string' ? { apiKey: options } : options;
return factory(providerOptions).embeddingModel(modelName);
}
View on GitHub (pinned to 5ac6606e81)
Solutions
- Read the error message — it lists the supported embedding providers.
- Use the correct embedding provider key: for AWS Bedrock embeddings use `bedrock/` or `amazon/`, not `aws-bedrock/`.
- Switch to an embedding-capable provider (e.g. `openai/text-embedding-3-small`, `google/text-embedding-004`, `cohere/embed-english-v3.0`).
- Ensure the corresponding `@ai-sdk/*` package is installed as a dependency.
Example fix
// before:
createEmbeddingModel('aws-bedrock/titan-embed-text-v2');
// after:
createEmbeddingModel('bedrock/titan-embed-text-v2');
// or use OpenAI:
createEmbeddingModel('openai/text-embedding-3-small'); Defensive patterns
Strategy: validation
Validate before calling
const EMBEDDING_PROVIDERS = new Set(['openai','google','mistral','cohere','amazon','bedrock']);
function validateEmbeddingProvider(embedderString: string): void {
const provider = embedderString.slice(0, embedderString.indexOf('/'));
if (!EMBEDDING_PROVIDERS.has(provider)) {
throw new Error(`Unknown embedding provider "${provider}". Supported: ${[...EMBEDDING_PROVIDERS].join(', ')}`);
}
}
validateEmbeddingProvider(config.embedder); Type guard
function isKnownEmbeddingProvider(id: string): boolean {
const provider = id.slice(0, id.indexOf('/'));
return ['openai','google','mistral','cohere','amazon','bedrock'].includes(provider);
} Prevention
- Remember embedding provider keys differ from language-model keys (e.g. `bedrock` not `aws-bedrock`).
- Validate embedding provider at config time, not at runtime.
- Ensure the matching `@ai-sdk/*` package is installed.
When it happens
Trigger: Calling `createEmbeddingModel('anthropic/text-embedding-3')` (Anthropic does not offer embeddings). Calling `createEmbeddingModel('aws-bedrock/titan-embed')` using the language-model provider key instead of the embedding key `bedrock`. Typo in the provider segment.
Common situations: Confusing the language-model provider keys with the embedding provider keys. Using a provider that has no embedding offering. Typo in the provider name. The embedding provider's `@ai-sdk/*` package naming differs from expectations.
Related errors
- Unsupported provider: "${provider}". Supported providers: ${
- Model ID is required
- Invalid model ID "${rawId}": expected "provider/model-name"
- Invalid credentials for provider "${provider}": ${issues}
- Cannot decrease maxIterations when resuming a run. Expected
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/8ab191d8eff9b6a2.
Report an issue: GitHub.