目录

n8n 错误处理教程:重试、失败后继续与错误通知流程

自动化流程最怕悄无声息地失败:API 暂时无法连接、数据格式不正确、凭证过期……如果没人发现,可能好几天都没有发出通知。本节介绍 n8n 的错误处理机制。

1. 自动重试(Retry On Fail)

很多错误都是暂时性的(网络不稳定、API 偶尔超时)。在节点的 Settings 选项卡中:

  • Retry On Fail:开启
  • Max Tries:最多尝试次数,例如 3
  • Wait Between Tries (ms):每次间隔,例如 5000(5 秒)
节点 Settings 选项卡:Retry On Fail 和 On Error
节点的 Settings 选项卡:Execute Once、Retry On Fail、On Error 都在这里

适用于调用外部 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

最重要的一步:创建一个专门处理错误的工作流,在任何工作流失败时自动通知你。

创建错误工作流

  1. 新建工作流,命名为“错误通知”。
  2. 选择 Error Trigger 作为第一个节点。
  3. 接上通知节点(Telegram、Email、Slack 等),消息内容:
⚠️ n8n 工作流执行失败
流程:{{ $json.workflow.name }}
节点:{{ $json.execution.lastNodeExecuted }}
错误:{{ $json.execution.error.message }}
时间:{{ $now.toFormat('yyyy-MM-dd HH:mm') }}
查看:{{ $json.execution.url }}
  1. 保存。以 Error Trigger 开头的工作流无需发布也会运行。
Error Trigger 连接 Telegram 的错误通知流程
错误通知工作流:Error Trigger 收到失败信息后,发送 Telegram 消息

指定给其他工作流

进入每个需要监控的工作流:菜单 → Settings → Error workflow,选择“错误通知”。

之后,只要这个工作流以“失败”状态结束,就会自动发送通知。

错误工作流只会在自动运行(计划任务、Webhook 等)失败时触发,手动测试失败不会触发。

5. 查看与重新运行

失败的执行记录和 Debug in editor 按钮
失败的执行会以红色标出,点击后可以查看哪个节点出错;右上角的 Debug in editor 可以加载当时的数据并重新测试
  • 在 Executions 中筛选 Error 状态,可以查看所有失败的执行。
  • 点击失败的执行,再按 Debug in editor,即可使用当时的数据重新测试。
  • 修复问题后,可以重新运行那次失败的执行。

6. 让数据可追溯

  • 在 Settings 中设置执行记录的保存策略:可以只保存失败的执行,以节省数据库空间。
  • 对于重要的工作流,可以在最后将一条记录写入电子表格或数据库,方便日后查询“哪条数据在什么时候处理过”。

建议的做法

情境建议
调用外部 API开启 Retry On Fail
批量处理多条数据使用 Continue (using error output),记录失败的数据
数据有问题,不应继续处理使用 Stop and Error
所有正式运行的工作流设置 Error workflow

养成习惯:每创建一个需要长期运行的工作流,就先设置好错误通知。

更新于 2026年10月12日