n8n-io/n8n · error · NodeOperationError
"Embedded chat" is not supported, change the "Mode" in the…
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.
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
- Could not configure Limit Wait Time
- Default webhook url not set
- Invalid date format
- Invalid loadPreviousSession option
- No authentication data defined on node!
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/f29254919ec62b9d.
Report an issue: GitHub.
Appendix: 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)