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
- Upgrade the Agent node to V3 so the fallback model also uses the working call path.
- Swap the fallback model for a non-Responses-API variant.
- 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
- Use a non-Responses-API model as the fallback on V2.
- Upgrade to V3 to use Responses-API fallbacks.
- Test the fallback path explicitly during development.
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
- This model is not supported in ${version} version of the Age
- Please connect a model to the Fallback Model input or disabl
- The "text" parameter is empty.
- Please connect a model to the Fallback Model input or disabl
- The “text” parameter is empty.
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/c9f0125f3a21e6a0.
Report an issue: GitHub.