Skip to content

fix(quick-start): recover all failed action directions in one retry #808

Description

@huyanxius

Problem

生产环境中,多方向完整动作在上游短时故障后会出现多个方向同时失败。Quick Start 虽然逐方向展示重试按钮,但第一次重试会把节点从 failed 改为 active/generating;用户随后重试第二个失败方向时,Controller 以“当前方向不能重新生成”拒绝请求。用户看到的结果是“重试无效”,只能反复试错。

2026-08-27 线上项目 96 / WorkflowRun 106 的真实记录显示:完整动作的 east、north、south 同时失败,上游主线路连续 429,备用线路同时出现 522/525;north、south 后续重试成功,而 east 仍失败。内容和成功方向都可保留,问题发生在多方向失败恢复状态机,而非用户输入。

Desired behavior

  • Quick Start 对同一节点的多个失败方向提供一个明确的“重试失败方向”入口。
  • 一次操作依次为当下所有失败方向创建替换任务,不要求用户理解或手动管理方向级状态。
  • 第一个方向进入 active/generating 后,其余已确认失败的方向仍可继续重试。
  • 已成功方向、动作描述、首帧和角色内容保持不变。
  • 某个替换任务再次失败时保留失败状态与重试入口,不做无限自动重试或重复扣费。

Acceptance criteria

  • 回归测试能复现并防止“第一次方向重试后,第二个失败方向被拒绝”。
  • Quick Start 点击一次会覆盖该节点当前所有失败方向,并显示进行中反馈。
  • 单方向失败仍使用具体方向文案;多方向失败使用统一批量文案。
  • 不改网关计费边界、模型路由、WorkflowRun 数据结构或已成功方向结果。

Scope

本 Issue 只修复多方向动作失败后的恢复交互和 Controller 状态约束。上游 429/52x 仍由现有 Gateway 的有限重试、Fallback 与熔断策略处理;不会承诺第三方服务永不失败。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions