n8n-io/n8n · error · NodeOperationError
Unsupported provider
Error message
Unsupported provider
What it means
Thrown by the HuggingFace Inference Embeddings node when options.provider is present but fails isValidHFProviderOrPolicy(). The node only accepts specific provider identifiers that the InferenceEndpoint API understands; anything else is rejected up front so the request does not fail opaquely downstream.
Source
Thrown at packages/@n8n/nodes-langchain/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.ts:105
default: 'auto',
},
],
},
],
};
async supplyData(this: ISupplyDataFunctions, itemIndex: number): Promise<SupplyData> {
this.logger.debug('Supply data for embeddings HF Inference');
const model = this.getNodeParameter(
'modelName',
itemIndex,
'sentence-transformers/distilbert-base-nli-mean-tokens',
) as string;
const credentials = await this.getCredentials('huggingFaceApi');
const options = this.getNodeParameter('options', itemIndex, {}) as object;
if ('provider' in options && !isValidHFProviderOrPolicy(options.provider)) {
throw new NodeOperationError(this.getNode(), 'Unsupported provider');
}
if (
'endpointUrl' in options &&
typeof options.endpointUrl === 'string' &&
options.endpointUrl
) {
assertCredentialAllowsUrl({
node: this.getNode(),
credentialData: credentials,
url: options.endpointUrl,
});
}
const embeddings = new HuggingFaceInferenceEmbeddings({
apiKey: credentials.apiKey as string,
model,
...options,View on GitHub (pinned to 5ac6606e81)
Solutions
- Open the node options and pick a provider from the dropdown (or clear the field to use the default).
- Check isValidHFProviderOrPolicy source for the current allow-list and match its values exactly.
- If you need a custom inference endpoint, use the endpointUrl option instead of an unsupported provider string.
Defensive patterns
Strategy: validation
Validate before calling
const ALLOWED_PROVIDERS = ['auto', 'fal', 'hf-inference', ...]; // mirror isValidHFProviderOrPolicy
if ('provider' in options && !ALLOWED_PROVIDERS.includes((options as any).provider)) {
throw new Error(`Unsupported provider. Allowed: ${ALLOWED_PROVIDERS.join(', ')}`);
} Type guard
const isValidHFProvider = (v: unknown): v is string => typeof v === 'string' && isValidHFProviderOrPolicy(v);
Try / catch
// Validate before supplyData; surface the allowed list to the user.
Prevention
- Use the node dropdown rather than hand-typing provider values.
- On version upgrades, re-check the provider list against the isValidHFProviderOrPolicy source.
- For custom endpoints, prefer endpointUrl over an unsupported provider string.
When it happens
Trigger: User selects/types a provider value in the node 'options.provider' that is not in the allowed set — a typo like 'falback', a deprecated provider name, a custom endpoint vendor, or a value left over from a different HF node version.
Common situations: Upgrading nodes-base/nodes-langchain versions where the allowed-provider list changed; copying a workflow from a tutorial that used an old provider id; manually editing the workflow JSON to inject a provider the UI doesn't expose.
Related errors
- Model ID is required
- Invalid delegate sub-agent tool name "${name}": must start w
- ${toolName} requires resumeSubAgent and cancelSubAgent to be
- toolCallConcurrency must be a positive integer or Infinity
- Tool name is required
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/f800f3eb12f2cfdd.
Report an issue: GitHub.