n8n-io/n8n · error · NodeOperationError

This fallback model is not supported in ${version} version o

Error message

This fallback model is not supported in ${version} version of the Agent node. Please upgrade the Agent node to the latest version.

What it means

Sibling of error 649: the same Responses-API incompatibility, but for the fallback model (input index 1) when needsFallback is enabled.

Source

Thrown at packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/ToolsAgent/V2/execute.ts:287

			0,
		) as number;
		const needsFallback = this.getNodeParameter('needsFallback', 0, false) as boolean;
		const memory = await getOptionalMemory(this);
		const model = await getChatModel(this, 0);
		assert(model, 'Please connect a model to the Chat Model input');
		const fallbackModel = needsFallback ? await getChatModel(this, 1) : null;

		// FIXME: remove when this is fixed: https://github.com/langchain-ai/langchainjs/pull/9082
		// Responses API + tools is broken when using langchain default call handling. In V3 calls are handled differently, so it works.
		if (checkIsResponsesApi(model)) {
			throw new NodeOperationError(
				this.getNode(),
				`This model is not supported in ${version} version of the Agent node. Please upgrade the Agent node to the latest version.`,
			);
		}

		if (checkIsResponsesApi(fallbackModel)) {
			throw new NodeOperationError(
				this.getNode(),
				`This fallback model is not supported in ${version} version of the Agent node. Please upgrade the Agent node to the latest version.`,
			);
		}

		if (needsFallback && !fallbackModel) {
			throw new NodeOperationError(
				this.getNode(),
				'Please connect a model to the Fallback Model input or disable the fallback option',
			);
		}

		// Check if streaming is enabled
		enableStreaming = this.getNodeParameter('options.enableStreaming', 0, true) as boolean;

		for (let i = 0; i < items.length; i += batchSize) {
			const batch = items.slice(i, i + batchSize);
			const batchPromises = batch.map(async (_item, batchItemIndex) => {

View on GitHub (pinned to 5ac6606e81)

Solutions

  1. Upgrade the Agent node to V3 so the fallback model also uses the working call path.
  2. Swap the fallback model for a non-Responses-API variant.
  3. If fallback is not strictly needed, disable the needsFallback option.
Defensive patterns

Strategy: validation

Validate before calling

const fallbackModel = needsFallback ? await getChatModel(this, 1) : null;
if (fallbackModel && checkIsResponsesApi(fallbackModel)) {
  throw new NodeOperationError(this.getNode(), 'Fallback model uses Responses API — upgrade Agent to V3 or pick a different fallback.');
}

Type guard

function isResponsesApiModel(model: unknown): boolean {
  return checkIsResponsesApi(model as BaseChatModel);
}

Prevention

When it happens

Trigger: Tools Agent V2 with needsFallback=true and the model connected to the Fallback Model input uses the Responses API.

Common situations: User added a fallback model that happens to be a Responses-API model; same model used for both primary and fallback on V2.

Related errors


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