n8n-io/n8n · error · NodeOperationError

"Response Mode" in the chat trigger node must be set to "Usi

Error message

"Response Mode" in the chat trigger node must be set to "Using Response Nodes"

What it means

Thrown by the chat response node when the Chat Trigger's options.responseMode is anything other than 'responseNodes' (e.g. 'lastNode', 'streaming', 'responseNode'). The response-node execution model requires the trigger to wait for response nodes specifically.

Source

Thrown at packages/@n8n/nodes-langchain/nodes/trigger/ChatTrigger/Chat.node.ts:366

				this.getNode(),
				'Workflow must be started from a chat trigger node',
			);
		}

		const parameters = chatTrigger.parameters as {
			mode?: 'hostedChat' | 'webhook';
			options: { responseMode: 'lastNode' | 'responseNodes' | 'streaming' | 'responseNode' };
		};

		if (parameters.mode === 'webhook') {
			throw new NodeOperationError(
				this.getNode(),
				'"Embedded chat" is not supported, change the "Mode" in the chat trigger node to the "Hosted Chat"',
			);
		}

		if (parameters.options.responseMode !== 'responseNodes') {
			throw new NodeOperationError(
				this.getNode(),
				'"Response Mode" in the chat trigger node must be set to "Using Response Nodes"',
			);
		}

		const message = getChatMessage(this);
		const options = this.getNodeParameter('options', 0, {}) as {
			memoryConnection?: boolean;
		};

		if (this.getNodeParameter('options.autoSaveHighlightedData', 0, true) !== false) {
			const responseText = typeof message === 'string' ? message : message.text;
			this.customData.set(getHighlightedResponseKey(this.getNode().name), responseText);
		}

		if (options.memoryConnection) {
			const memory = (await this.getInputConnectionData(NodeConnectionTypes.AiMemory, 0)) as
				| BaseChatMemory

View on GitHub (pinned to 5ac6606e81)

Solutions

  1. Open the Chat Trigger node → Options → set 'Response Mode' to 'Using Response Nodes'.
  2. Re-test the workflow from the chat trigger after the change.
  3. If a different response mode is intentional, remove or replace the node that requires responseNodes mode.

Example fix

// before: Chat Trigger → Options → Response Mode = 'When Last Node Finishes'
// after: Chat Trigger → Options → Response Mode = 'Using Response Nodes'
Defensive patterns

Strategy: validation

Validate before calling

if (chatTrigger.parameters.options?.responseMode !== 'responseNodes') {
  throw new Error('Set Chat Trigger Response Mode to "Using Response Nodes"');
}

Type guard

function usesResponseNodes(params: { options?: { responseMode?: string } }): boolean {
  return params.options?.responseMode === 'responseNodes';
}

Prevention

When it happens

Trigger: Chat Trigger 'Response Mode' is set to 'When Last Node Finishes' (lastNode), 'Using Chat Trigger Node' (responseNode), or 'Streaming', while the workflow contains a node that only functions under the 'Using Response Nodes' mode.

Common situations: Default Response Mode left on 'lastNode'; switching a flow from one response strategy to another without updating the trigger; mixing response strategies across branches.

Related errors


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