WebSocket 有连接却收不到结果:按 prompt_id 跟踪终止状态
API 客户端能连接 WebSocket,也成功排队,但一直等待某个事件或没有取回结果。需要核对 client_id、prompt_id、终止事件和历史查询,而不是只以连接保持为成功条件。
现象与适用范围
API 客户端能连接 WebSocket,也成功排队,但一直等待某个事件或没有取回结果。需要核对 client_id、prompt_id、终止事件和历史查询,而不是只以连接保持为成功条件。
检索用原文或片段(具体编号、数值和文件名随环境变化):
execution_error
execution_success
executed
executing
已核对的依据
官方消息文档区分执行开始、缓存、成功、失败和中断;executed 只在节点返回 UI 更新时发送,不代表每个节点都会有此事件。POST /prompt 也可能在入队前因校验失败返回 error 与 node_errors,而没有 prompt_id。固定版本的官方 API 示例将 JSON 消息与二进制预览分开处理,再按 prompt_id 从历史和 /view 取回保存结果。 D10 D09 D-WS
需要区分的情况
1. 提交请求与 WebSocket 所使用的客户端标识没有对应,收到的是别的任务或没有收到定向消息。
2. 程序只等待 executed,忽略没有 UI 输出的路径、缓存以及失败终止。
3. 代理中断长连接、消息解析混淆二进制预览与 JSON,或任务完成后客户端断线丢失事件。
建议的操作顺序
以下顺序是基于上述资料整理的诊断方案,不代表上游已经为你的环境确认了原因。
第 1 步。 先检查 POST /prompt 是否返回 prompt_id;若返回 error 与 node_errors,应处理校验失败,不要等待 WebSocket。已入队时,记录连接与提交使用的 client_id,再按 prompt_id 过滤事件。
第 2 步。 分别处理 success、error、interrupted;遇到错误保留节点和原因后停止等待。
第 3 步。 设置合理的连接超时与重连逻辑;重连后查询已知 prompt_id 的历史,而不是立即再提交一次任务。
第 4 步。 读取历史 outputs 中实际存在的保存结果,按 /view 接口参数获取;不要假定所有节点都返回相同字段。
如何判断处理有效
已入队的 prompt 能进入成功、失败或中断的明确终态;入队校验失败单独报告,断线恢复时不会重复创建任务。
注意事项与尚未确认的部分
客户端库和代理的 WebSocket 配置需按实际部署验证。本文不是一个经过真实服务器联调的现成 SDK。
原始资料核对日期:2026-09-21;2026-09-25 复核消息、路由和固定版本 API 示例。本站未进行真实服务端联调、GPU、最低显存或耗时测试。
原始资料
- D10 · ComfyUI execution messages。原核对:2026-09-21;复核:2026-09-25。
- D09 · ComfyUI Server API routes。原核对:2026-09-21;复核:2026-09-25。
- D-WS · ComfyUI v0.37.0 WebSocket API 示例。核对:2026-09-25。
相关排查与操作
排查下一个可能的原因
同样的现象可能来自不同原因。可以按顺序查看下面这些相关条目。
把完整日志粘贴到报错排查工具这篇内容对你有帮助吗?
匿名统计,只记录“有/没有帮助”的计数,不记录账号、IP 地址或设备信息。
资料来源
2026-09-25 复核官方消息与路由文档、固定版本 WebSocket API 示例;未做真实服务端联调、GPU 或最低显存测试,不保证特定修复效果。
01ComfyUI execution messages资料核对: 2026-09-2502ComfyUI Server API routes资料核对: 2026-09-2503ComfyUI v0.37.0 WebSocket API 示例资料核对: 2026-09-25报告问题 · f97eb350-db07-5bce-880b-d775861b8250
相关阅读
编辑为本页关联的条目。
本指南面向调用自有或获授权 ComfyUI 实例的开发者。网站提供的 MCP 与 ComfyUI 原生 HTTP API 是两套不同接口;这里讨论后者,不涉及自动登录第三方平台或绕过访问限制。
工作流执行成功后,调用方还需要知道哪些节点产生了结果、结果保存在什么位置,以及如何取回。不要把节点 ID、文件名和任务 ID 混成一个字段。