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
- Open the Chat Trigger node and set 'Mode' to 'Hosted Chat'.
- 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
- Use 'Hosted Chat' mode when the flow includes response nodes.
- Validate trigger mode before relying on the response-node path.
- Document the mode requirement in the workflow.
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
- Workflow must be started from a chat trigger node
- "Response Mode" in the chat trigger node must be set to "Usi
- Default webhook url not set
- No authentication data defined on node!
- Invalid loadPreviousSession option: ${value}
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/f29254919ec62b9d.
Report an issue: GitHub.