n8n-io/n8n · error · NodeOperationError

"Embedded chat" is not supported, change the "Mode" in the c

Error message

"Embedded chat" is not supported, change the "Mode" in the chat trigger node to the "Hosted Chat"

What it means

Thrown by the chat response node when a Chat Trigger is found but its 'mode' parameter is 'webhook' (Embedded chat). The response-node path only supports 'hostedChat' mode; embedded/webhook chat is incompatible.

Source

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

				// try to get chat trigger from workflow if node working as a tool
				chatTrigger = this.getChatTrigger();
			} catch (error) {}
		}

		if (!chatTrigger) {
			throw new NodeOperationError(
				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) {

View on GitHub (pinned to 5ac6606e81)

Solutions

  1. Open the Chat Trigger node and set 'Mode' to 'Hosted Chat'.
  2. If embedded chat is required, restructure the flow to not use the response-node path (use the trigger's own response handling).

Example fix

// before: Chat Trigger → Mode = 'Embedded Chat' (webhook)
// after: Chat Trigger → Mode = 'Hosted Chat'
Defensive patterns

Strategy: validation

Validate before calling

if (chatTrigger.parameters.mode === 'webhook') {
  throw new Error('Set Chat Trigger Mode to Hosted Chat to use this node');
}

Type guard

function isHostedChat(params: { mode?: string }): boolean { return params.mode === 'hostedChat'; }

Prevention

When it happens

Trigger: Chat Trigger is set to 'Embedded Chat' (webhook mode) while a downstream node requires the hosted chat UI; mixing an embedded-chat trigger with a response-node flow.

Common situations: Switching the Chat Trigger mode after building the flow; copying a hosted-chat flow into an embedded-chat trigger setup.

Related errors


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