错误与重试
选择何时重试整个任务、带着错误继续执行,或停止运行。
重试会使用相同输入,重新执行整个任务。错误处理则可以将支持处理的最终失败转为系统错误值。两者独立配置,执行后果也不同。
任务重试
代码、应用操作、OpenAPI、LLM 和 AI 决策节点支持 retry。maxRetries 为额外重试次数,范围是 0–5。intervalMs 必须是 1,000–60,000 毫秒之间的整秒数。
{
"op": "node.update",
"node": "NODE_REFERENCE",
"set": { "retry": { "maxRetries": 2, "intervalMs": 5000 } }
}
重试可能重复外部操作。它不会重置运行截止时间、绕过限制,也不能重放结果尚未确认的外部操作。Agent、工作流调用、触发器、等待和审批不支持这套节点重试策略。
处理错误
上述五类任务还支持 onError: "error",默认值为 "stop"。启用重试时,错误处理在最后一次尝试后生效。支持处理的输入或输出校验失败,可以进入错误处理,但不会重试。
执行成功时,系统 error 输出为 null。失败被处理后,系统会输出结构化错误,并沿普通执行连线继续。本次失败调用不会提交业务输出。
{
"kind": "system",
"node": "NODE_REFERENCE",
"port": "error"
}
可以用条件节点区分 null 和错误对象。如果处理后的失败路径能到达下游业务输入,该输入就必须允许缺失值或 null。错误处理没有单独的执行连线。
无法处理为业务错误的失败
取消、超时、资源限制、隔离失败、持久化失败,以及结果不确定的外部操作,都不能转成普通的可处理业务错误。
工作流级错误处理
工作流错误触发器会为符合条件的生产失败启动独立的处理运行。它不负责捕获单个节点错误,不会清除源运行的失败状态,也不能证明重新执行原任务是安全的。