
Hang: reconverging workflow traversal can block editor and runtime
快速结论:该问题发生在 n8n 工作流中存在多条分支并重新汇聚到同一下游节点时(DAG 结构)。编辑器界面卡死、运行时无限挂起,优先检查 n8n 版本是否≥2.25.7(应包含修复 PR #32363),并验证工作流中的汇聚结构。
问题场景
用户运行 n8n 2.25.7(self hosted,npm 安装,SQLite 数据库,Node.js 24.0.2),在 Chrome 浏览器中编辑/执行具有多分支反复合并(reconverging)的工作流时,触发编辑器无响应、浏览器弹出“Page Unresponsive”对话框、运行时执行无限挂起。
报错原文
Chrome shows "Page Unresponsive" dialog.
JavaScript console does not show a clear exception.
DOM inspection reveals: ~74,000 DOM nodes, ~21,000 event listeners.
n8n server stops responding while node process is still alive.
原因分析
根本原因是 get-connected-nodes.ts 中的 getConnectedNodes()、getChildNodes()、getParentNodes() 函数采用**递归树遍历**方式处理工作流图。当工作流呈现 DAG 结构(分支→汇聚→再分支→再汇聚)时,同一个下游或上游子图会通过不同路径被多次重复访问,导致遍历次数指数级增长。在用户的工作流中,编辑器 Schema/Input/Output 面板和运行时执行均受此影响,产生大量 DOM 节点和事件监听器,直至挂起。
该问题与 PR #32363 描述的根本原因一致。PR #32363 的修复方向是:在遍历过程中维护一个共享的 visited 集合(visited set),避免重复访问已遍历过的节点,并考虑节点/方向/类型/深度的缓存。
环境排查
- 检查 n8n 版本:
n8nVersion是否为 2.25.7 或更高(该版本包含 PR #32363 的修复) - 检查 Node.js 版本:当前报错环境为 24.0.2(非必须,但建议使用 n8n 官方支持的 LTS 版本)
- 检查浏览器:Chrome 149(当前报错环境)
- 检查数据库:SQLite(默认,不影响此问题)
- 检查执行模式:regular(main)
解决步骤
- 升级 n8n 到包含 PR #32363 修复的版本。 该修复已于 2026-06-22 合并到 master。建议使用 n8n 2.25.7 之后的版本或最新的 Docker nightly 镜像。
- 如果无法升级,作为临时缓解措施:在编辑器中避免同时打开具有汇聚结构的多个节点面板(Schema/Input/Output),或者将工作流拆分为多个子工作流(Sub Workflow)以减少单次遍历的节点数。
- 待修复版本生效后,重新打开之前会卡死的节点,确认编辑器是否响应。
- 执行工作流,确认运行时不再挂起。
验证方法
升级 n8n 后,打开之前导致编辑器卡死的工作流,点击所有节点并展开 Schema/Input/Output 面板,确认编辑器保持响应。然后执行工作流,确认执行正常完成,无无限挂起。如果有条件,在浏览器开发者工具的 Performance 面板中检查 DOM 节点数是否恢复正常。

![[Bug]: Apply “Table” to excel,abnormal llm behavior.](https://www.chat-gpts.plus/wp-content/uploads/2026/06/5850-d237fdbd-768x403.jpg)

