{"record":{"id":"8ab191d8eff9b6a2","repo":"n8n-io/n8n","slug":"unsupported-embedding-provider-provider-sup","errorCode":null,"errorMessage":"Unsupported embedding provider: \"${provider}\". Supported: ${supported}","messagePattern":"Unsupported embedding provider: \"(.+?)\"\\. Supported: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@n8n/agents/src/runtime/model/model-factory.ts","lineNumber":313,"sourceCode":"type EmbeddingProvider = keyof typeof EMBEDDING_PROVIDERS;\ntype EmbeddingModelId = `${EmbeddingProvider}/${string}`;\n\n/**\n * Create an embedding model from a \"provider/model\" string (e.g. \"openai/text-embedding-3-small\").\n * Supports any AI SDK provider that exposes `.embeddingModel()`.\n * The provider package must be installed at runtime.\n */\nexport function createEmbeddingModel(\n\tembedderString: EmbeddingModelId | (string & {}),\n\toptions?: string | EmbeddingProviderOptions,\n): EmbeddingModel {\n\tconst [provider, ...rest] = embedderString.split('/');\n\tconst modelName = rest.join('/');\n\n\tconst entry = EMBEDDING_PROVIDERS[provider as EmbeddingProvider];\n\tif (!entry) {\n\t\tconst supported = Object.keys(EMBEDDING_PROVIDERS).join(', ');\n\t\tthrow new Error(`Unsupported embedding provider: \"${provider}\". Supported: ${supported}`);\n\t}\n\n\tconst mod = require(entry.pkg) as Record<string, CreateEmbeddingProviderFn>;\n\tconst factory = mod[entry.factory];\n\tconst providerOptions = typeof options === 'string' ? { apiKey: options } : options;\n\treturn factory(providerOptions).embeddingModel(modelName);\n}\n","sourceCodeStart":295,"sourceCodeEnd":321,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/agents/src/runtime/model/model-factory.ts#L295-L321","documentation":"`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`).","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before:\ncreateEmbeddingModel('aws-bedrock/titan-embed-text-v2');\n\n// after:\ncreateEmbeddingModel('bedrock/titan-embed-text-v2');\n// or use OpenAI:\ncreateEmbeddingModel('openai/text-embedding-3-small');","handlingStrategy":"validation","validationCode":"const EMBEDDING_PROVIDERS = new Set(['openai','google','mistral','cohere','amazon','bedrock']);\n\nfunction validateEmbeddingProvider(embedderString: string): void {\n  const provider = embedderString.slice(0, embedderString.indexOf('/'));\n  if (!EMBEDDING_PROVIDERS.has(provider)) {\n    throw new Error(`Unknown embedding provider \"${provider}\". Supported: ${[...EMBEDDING_PROVIDERS].join(', ')}`);\n  }\n}\n\nvalidateEmbeddingProvider(config.embedder);","typeGuard":"function isKnownEmbeddingProvider(id: string): boolean {\n  const provider = id.slice(0, id.indexOf('/'));\n  return ['openai','google','mistral','cohere','amazon','bedrock'].includes(provider);\n}","tryCatchPattern":null,"preventionTips":["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."],"tags":["embedding","model-config","validation","provider","registry"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}