{"record":{"id":"f800f3eb12f2cfdd","repo":"n8n-io/n8n","slug":"unsupported-provider","errorCode":null,"errorMessage":"Unsupported provider","messagePattern":"Unsupported provider","errorType":"exception","errorClass":"NodeOperationError","httpStatus":null,"severity":"error","filePath":"packages/@n8n/nodes-langchain/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.ts","lineNumber":105,"sourceCode":"\t\t\t\t\t\tdefault: 'auto',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t};\n\n\tasync supplyData(this: ISupplyDataFunctions, itemIndex: number): Promise<SupplyData> {\n\t\tthis.logger.debug('Supply data for embeddings HF Inference');\n\t\tconst model = this.getNodeParameter(\n\t\t\t'modelName',\n\t\t\titemIndex,\n\t\t\t'sentence-transformers/distilbert-base-nli-mean-tokens',\n\t\t) as string;\n\t\tconst credentials = await this.getCredentials('huggingFaceApi');\n\t\tconst options = this.getNodeParameter('options', itemIndex, {}) as object;\n\n\t\tif ('provider' in options && !isValidHFProviderOrPolicy(options.provider)) {\n\t\t\tthrow new NodeOperationError(this.getNode(), 'Unsupported provider');\n\t\t}\n\n\t\tif (\n\t\t\t'endpointUrl' in options &&\n\t\t\ttypeof options.endpointUrl === 'string' &&\n\t\t\toptions.endpointUrl\n\t\t) {\n\t\t\tassertCredentialAllowsUrl({\n\t\t\t\tnode: this.getNode(),\n\t\t\t\tcredentialData: credentials,\n\t\t\t\turl: options.endpointUrl,\n\t\t\t});\n\t\t}\n\n\t\tconst embeddings = new HuggingFaceInferenceEmbeddings({\n\t\t\tapiKey: credentials.apiKey as string,\n\t\t\tmodel,\n\t\t\t...options,","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/nodes-langchain/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.ts#L87-L123","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const ALLOWED_PROVIDERS = ['auto', 'fal', 'hf-inference', ...]; // mirror isValidHFProviderOrPolicy\nif ('provider' in options && !ALLOWED_PROVIDERS.includes((options as any).provider)) {\n  throw new Error(`Unsupported provider. Allowed: ${ALLOWED_PROVIDERS.join(', ')}`);\n}","typeGuard":"const isValidHFProvider = (v: unknown): v is string =>\n  typeof v === 'string' && isValidHFProviderOrPolicy(v);","tryCatchPattern":"// Validate before supplyData; surface the allowed list to the user.","preventionTips":["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."],"tags":["huggingface","embeddings","validation","configuration"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}