n8n-io/n8n · error · NodeOperationError

No model found called

Error message

No model found called '${modelName}'

What it means

Error-status mapper for ChatVertexAI: the API returned 404 because no model with the configured modelName exists in the project/location. The message includes the exact model name that was requested so the mismatch is obvious.

Solutions

  1. Correct the model name to an available Vertex AI model
  2. Check the project/region — the model may exist only in another location
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at packages/@n8n/nodes-langchain/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts:220 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12). Data as JSON: /api/errors/4e08e2b43448e01c. Report an issue: GitHub.

Appendix: source

Thrown at packages/@n8n/nodes-langchain/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts:220

				location,
				...(endpoint ? { endpoint } : {}),
				model: modelName,
				topK: options.topK,
				topP: options.topP,
				temperature: options.temperature,
				maxOutputTokens: options.maxOutputTokens,
				safetySettings,
				callbacks: [new N8nLlmTracing(this, { errorDescriptionMapper })],
				// Handle ChatVertexAI invocation errors to provide better error messages
				onFailedAttempt: makeN8nLlmFailedAttemptHandler(this, (error: any) => {
					// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
					const status = Number(error?.response?.status);
					const customError = makeErrorFromStatus(status, {
						modelName,
					});

					if (customError) {
						throw new NodeOperationError(this.getNode(), error as JsonObject, customError);
					}

					if (status === 400) {
						// Surface Google's error detail; a bare rethrow would hide it behind a
						// generic "Bad request" wrapper
						throw new NodeOperationError(this.getNode(), error as JsonObject, {
							message: 'Bad request - please check your parameters',
							description:
								extractGoogleErrorMessage(error as { message?: string }) ??
								// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
								(typeof error?.message === 'string' ? (error.message as string) : undefined),
						});
					}

					throw error;
				}),
			};

View on GitHub (pinned to 5ac6606e81)