[Bug v1.15] Frontend cannot receive reply after Manual Intervention Node + Conditional Branch

当 Dify 工作流在「Manual Selection」(阻塞式人工介入节点)之后再接「Conditional Branch」,后端调试显示全部节点执行成功,但前端始终收不到最终回复,表现为 SSE 终态事件(workflow_finish / message_end)未正常送达。优先排查 Dif

快速结论:当 Dify 工作流在「Manual Selection」(阻塞式人工介入节点)之后再接「Conditional Branch」,后端调试显示全部节点执行成功,但前端始终收不到最终回复,表现为 SSE 终态事件(workflow_finish / message_end)未正常送达。优先排查 Dify 是否为最新 v1.15 稳定版,以及浏览器 Network 中是否收到终态 SSE 事件。

适用环境:Issue 已确认工具为 Dify(Self Hosted,Docker 部署)。其他版本号、操作系统、Python、CUDA、显卡等环境信息 Issue 未提供,请勿臆测。

最快修复方案:暂无确认的一步修复方案。可优先尝试升级到 v1.15 周期内的最新稳定版(而非早期 pre-release),因为相关终态事件修复是随 v1.15 周期合并的。

注意事项:升级只是基于相关 Issue/PR 的推测性建议,Issue 中未对该环境做最终验证。绕过分支的直连测试仅用于定位,不是长期方案。

问题场景

用户在 Dify(Self Hosted,Docker)中搭建工作流:User Input → Manual Selection(阻塞式人工干预节点)→ Conditional Branch,并将所有 IF / ELSE 分支都连到同一个 Direct Reply 节点(使用固定静态文本)。执行工作流并完成人工选择后,后端 debug 显示全部节点成功执行、日志完整、无任何报错,但前端始终收不到回复消息。移除人工干预节点后该 Bug 消失。

报错原文

[Bug v1.15] Frontend cannot receive reply after Manual Intervention Node + Conditional Branch

原因分析

最可能的原因:人工干预(阻塞)节点恢复执行后,缺失了终态事件(workflow_finish / message_end),导致 SSE 流在前端无法正常收尾;同时 Conditional Branch 在阻塞节点之后的分支合并拓扑中,Answer 节点的流式依赖解析可能存在问题。这两个方向都与 v1.15 周期内已识别的 SSE 终态事件投递问题吻合(相关修复见 PR #32985、#37129,分支流式依赖见 PR #22771)。

Issue 提出的疑似原因:人工阻塞节点恢复后,会话上下文快照被重置,破坏了下游条件分支的 SSE 流事件投递。

环境排查

  • 确认 Dify 版本是否为 v1.15 周期内的最新稳定版,而非更早的 pre-release。
  • 确认部署方式为 Self Hosted(Docker),与 Issue 环境一致。
  • 检查浏览器 Network 面板中是否出现过 workflow_finish 或 message_end 这类 SSE 事件。
  • 检查工作流结构:Manual Selection 之后是否确实接了 Conditional Branch,各分支是否都连到 Direct Reply。

解决步骤

  1. 确认当前 Dify 版本,若不是 v1.15 周期内的最新稳定版,可优先尝试升级(相关终态事件修复随该周期合并)。
  2. 复现后打开浏览器开发者工具的 Network 面板,完成人工选择,观察是否有 workflow_finish 或 message_end 事件到达。
  3. 若未收到终态事件,基本可定位为事件投递/发射问题,而非节点执行问题。
  4. 作为临时定位手段,尝试将 Manual Intervention 节点直接连到 Answer 节点(绕过 Conditional Branch),以确认问题是否由分支交互引起。
  5. 如已在最新 v1.15 稳定版仍复现,收集浏览器 Network 中人工干预完成后出现的 SSE 事件信息,提交给维护者以判断问题在事件发射还是事件投递阶段。

验证方法

重跑「User Input → Manual Selection → Conditional Branch → Direct Reply」工作流,完成人工选择后,前端能够正常收到固定静态文本回复,并可在浏览器 Network 中观察到 workflow_finish 或 message_end 终态 SSE 事件。

参考来源

langgenius/dify #38315

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 23171

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注