目录
n8n 错误处理教程:重试、失败后继续与错误通知流程
自动化流程最怕悄无声息地失败:API 暂时无法连接、数据格式不正确、凭证过期……如果没人发现,可能好几天都没有发出通知。本节介绍 n8n 的错误处理机制。
1. 自动重试(Retry On Fail)
很多错误都是暂时性的(网络不稳定、API 偶尔超时)。在节点的 Settings 选项卡中:
- Retry On Fail:开启
- Max Tries:最多尝试次数,例如 3
- Wait Between Tries (ms):每次间隔,例如 5000(5 秒)

适用于调用外部 API 的节点(HTTP Request、各种服务节点)。
2. 失败时怎么办(On Error)
同样在节点的 Settings 选项卡中,On Error 有三种选择:
| 选项 | 行为 |
|---|---|
| Stop Workflow | 默认值。整个工作流停止并标记为失败 |
| Continue | 忽略错误,将错误信息作为输出,然后继续运行后续节点 |
| Continue (using error output) | 节点会多出一个 error 输出,失败的数据走另一条分支 |
使用错误输出分支
处理多条数据时,一条失败不应该让其他数据也停止处理:
┌─ success ─▶ [标记为已处理]
[逐条调用 API] ─────┤
└─ error ───▶ [记录到“失败清单”电子表格]
失败的数据中会带有错误信息,可以使用 {{ $json.error.message }} 读取。
3. 主动中止:Stop and Error
数据不符合预期时,与其让后续节点产生错误结果,不如主动中止:
[获取订单] ─▶ [If 金额为空?] ─true─▶ [Stop and Error:“订单 {{ $json.id }} 缺少金额”]
└false─▶ [继续处理]
Stop and Error 节点会使执行失败,并触发下面介绍的错误工作流。
4. 全局错误通知:Error Trigger
最重要的一步:创建一个专门处理错误的工作流,在任何工作流失败时自动通知你。
创建错误工作流
- 新建工作流,命名为“错误通知”。
- 选择 Error Trigger 作为第一个节点。
- 接上通知节点(Telegram、Email、Slack 等),消息内容:
⚠️ n8n 工作流执行失败
流程:{{ $json.workflow.name }}
节点:{{ $json.execution.lastNodeExecuted }}
错误:{{ $json.execution.error.message }}
时间:{{ $now.toFormat('yyyy-MM-dd HH:mm') }}
查看:{{ $json.execution.url }}
- 保存。以 Error Trigger 开头的工作流无需发布也会运行。

指定给其他工作流
进入每个需要监控的工作流:菜单 → Settings → Error workflow,选择“错误通知”。
之后,只要这个工作流以“失败”状态结束,就会自动发送通知。
错误工作流只会在自动运行(计划任务、Webhook 等)失败时触发,手动测试失败不会触发。
5. 查看与重新运行

- 在 Executions 中筛选 Error 状态,可以查看所有失败的执行。
- 点击失败的执行,再按 Debug in editor,即可使用当时的数据重新测试。
- 修复问题后,可以重新运行那次失败的执行。
6. 让数据可追溯
- 在 Settings 中设置执行记录的保存策略:可以只保存失败的执行,以节省数据库空间。
- 对于重要的工作流,可以在最后将一条记录写入电子表格或数据库,方便日后查询“哪条数据在什么时候处理过”。
建议的做法
| 情境 | 建议 |
|---|---|
| 调用外部 API | 开启 Retry On Fail |
| 批量处理多条数据 | 使用 Continue (using error output),记录失败的数据 |
| 数据有问题,不应继续处理 | 使用 Stop and Error |
| 所有正式运行的工作流 | 设置 Error workflow |
养成习惯:每创建一个需要长期运行的工作流,就先设置好错误通知。
更新于 2026年10月12日