{"record":{"id":"f29254919ec62b9d","repo":"n8n-io/n8n","slug":"embedded-chat-is-not-supported-change-the-mode","errorCode":null,"errorMessage":"\"Embedded chat\" is not supported, change the \"Mode\" in the chat trigger node to the \"Hosted Chat\"","messagePattern":"\"Embedded chat\" is not supported, change the \"Mode\" in the chat trigger node to the \"Hosted Chat\"","errorType":"exception","errorClass":"NodeOperationError","httpStatus":null,"severity":"error","filePath":"packages/@n8n/nodes-langchain/nodes/trigger/ChatTrigger/Chat.node.ts","lineNumber":359,"sourceCode":"\t\t\t\t// try to get chat trigger from workflow if node working as a tool\n\t\t\t\tchatTrigger = this.getChatTrigger();\n\t\t\t} catch (error) {}\n\t\t}\n\n\t\tif (!chatTrigger) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t'Workflow must be started from a chat trigger node',\n\t\t\t);\n\t\t}\n\n\t\tconst parameters = chatTrigger.parameters as {\n\t\t\tmode?: 'hostedChat' | 'webhook';\n\t\t\toptions: { responseMode: 'lastNode' | 'responseNodes' | 'streaming' | 'responseNode' };\n\t\t};\n\n\t\tif (parameters.mode === 'webhook') {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t'\"Embedded chat\" is not supported, change the \"Mode\" in the chat trigger node to the \"Hosted Chat\"',\n\t\t\t);\n\t\t}\n\n\t\tif (parameters.options.responseMode !== 'responseNodes') {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t'\"Response Mode\" in the chat trigger node must be set to \"Using Response Nodes\"',\n\t\t\t);\n\t\t}\n\n\t\tconst message = getChatMessage(this);\n\t\tconst options = this.getNodeParameter('options', 0, {}) as {\n\t\t\tmemoryConnection?: boolean;\n\t\t};\n\n\t\tif (this.getNodeParameter('options.autoSaveHighlightedData', 0, true) !== false) {","sourceCodeStart":341,"sourceCodeEnd":377,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/nodes-langchain/nodes/trigger/ChatTrigger/Chat.node.ts#L341-L377","documentation":"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.","triggerScenarios":"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.","commonSituations":"Switching the Chat Trigger mode after building the flow; copying a hosted-chat flow into an embedded-chat trigger setup.","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)."],"exampleFix":"// before: Chat Trigger → Mode = 'Embedded Chat' (webhook)\n// after: Chat Trigger → Mode = 'Hosted Chat'","handlingStrategy":"validation","validationCode":"if (chatTrigger.parameters.mode === 'webhook') {\n  throw new Error('Set Chat Trigger Mode to Hosted Chat to use this node');\n}","typeGuard":"function isHostedChat(params: { mode?: string }): boolean { return params.mode === 'hostedChat'; }","tryCatchPattern":null,"preventionTips":["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."],"tags":["chat-trigger","configuration","mode-mismatch"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}