
Sub-workflow error after Wait node (webhook resume) does not fail the parent workflow (v2.x)
快速结论:该问题发生在 n8n v2.x 中,当子工作流包含 Wait(On Webhook Call)节点并在 webhook 恢复执行后抛出错误时,父工作流不会收到错误传播,而是继续走成功路径并最终标记为 “Success”。优先排查 n8n 版本是否低于 2.27.0,并升级到包含修复的版本。
问题场景
用户使用 n8n v2.21.6(Docker 自托管),通过 “Execute Sub-workflow” 节点调用子工作流,并启用 “Wait For Sub-Workflow Completion”。子工作流包含 “Wait” 节点(恢复模式为 “On Webhook Call”)以及其后会抛错的节点(例如 “Stop and Error” 节点)。当子工作流在 webhook 恢复后报错时,父工作流未进入错误路径,而是成功完成。
报错原文
Sub-workflow error after Wait node (webhook resume) does not fail the parent workflow (v2.x)
(注:此为 Issue 标题,运行时无标准错误输出,行为表现为父工作流未按预期失败)
原因分析
可能原因:n8n 在 v2.x 中处理 webhook 恢复后的子工作流执行结果时,存在一个缺陷——当错误发生在 Wait 节点之后时,该错误结果未能正确传递回父工作流的 “Execute Sub-workflow” 节点,导致父工作流忽略子工作流的失败状态,继续执行成功路径。该行为与子工作流在 Wait 节点之前出错时父工作流正常失败的行为不一致。
环境排查
- n8n 版本:确认运行版本,是否为 v2.21.6 或更低(如 v2.0–2.26.x)。
- 部署方式:Docker 自托管 / 其他平台。
- 数据库:SQLite(默认)或其他数据库。
- 执行模式:regular,非多实例集群模式。
- “Execute Sub-workflow” 节点设置:确认 “Wait For Sub-Workflow Completion” 已启用。
- 子工作流结构:确认包含 Wait 节点(On Webhook Call)及其后可能抛错的节点。
解决步骤
- 升级 n8n 到包含修复的版本:修复已在 v2.27.0(beta 通道)合并,预计稳定版将于下一周发布。升级到 v2.27.0 或更高版本,并重启服务。
- 验证修复:升级后,重新运行包含 Wait 节点并在其后抛错的子工作流,观察父工作流是否正确进入错误路径。
- (备选)临时规避:如果无法立即升级,可考虑在子工作流中不使用 Wait 节点 + webhook 恢复,或通过自定义逻辑在子工作流中处理错误后强制父工作流感知(但此方案未经官方验证,建议优先升级)。
验证方法
升级后,按 Issue 中的复现步骤操作:创建子工作流(Execute Sub-workflow Trigger → Wait node → Stop and Error node),父工作流调用它并启用 “Wait For Sub-Workflow Completion”。触发父工作流后,调用子工作流的恢复 webhook。确认父工作流不再继续走成功路径,而是正确标记为 “Error” 或进入错误处理分支。



