Skip to content

错误处理

在设计流程逻辑时,最好考虑潜在的错误,并设置相应的方法来妥善处理它们。使用错误工作流,您可以控制 n8n 如何响应工作流执行失败。

调查错误

要调查失败的执行,您可以:

创建并设置错误工作流

对于每个工作流,您可以在“工作流设置”中设置一个错误工作流。该工作流会在执行失败时运行。这意味着,例如,您可以在工作流执行出错时发送电子邮件或 Slack 警报。错误工作流必须以“错误触发器”启动。

您可以对多个工作流使用相同的错误工作流。

  1. 创建一个新的工作流,以错误触发器作为第一个节点。
  2. 为工作流命名,例如。
  3. 选择保存
  4. 在要使用此错误工作流的工作流中:
    1. 选择
    1. 选项
    1. >
    1. 设置
    1. 错误工作流
    1. ,选择您刚刚创建的工作流。例如,如果您使用的名称是 错误处理程序 ,请选择
    1. 错误处理程序
    1. 选择
    1. 保存
    1. 。现在,当此工作流出现错误时,相关的错误工作流就会运行。

错误数据

错误触发器默认接收的错误数据是:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[
	{
		"execution": {
			"id": "231",
			"url": "https://n8n.example.com/execution/231",
			"retryOf": "34",
			"error": {
				"message": "Example Error Message",
				"stack": "Stacktrace"
			},
			"lastNodeExecuted": "Node With Error",
			"mode": "manual"
		},
		"workflow": {
			"id": "1",
			"name": "Example Workflow"
		}
	}
]

所有信息始终存在,但以下信息除外:

  • :要求将执行情况保存到数据库中。如果错误发生在主工作流的触发节点中,则不存在此属性,因为工作流不会执行。
  • :要求将执行情况保存到数据库中。如果错误发生在主工作流的触发节点中,则不存在此属性,因为工作流不会执行。
  • :仅当执行是失败执行的重试时才存在。

如果错误是由主工作流的触发节点(而不是后续阶段)引起的,则发送到错误工作流的数据会有所不同。 中的信息较少, 中的信息较多:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "trigger": {
    "error": {
      "context": {},
      "name": "WorkflowActivationError",
      "cause": {
        "message": "",
        "stack": ""
      },
      "timestamp": 1654609328787,
      "message": "",
      "node": {
        . . . 
      }
    },
    "mode": "trigger"
  },
  "workflow": {
    "id": "",
    "name": ""
  }
}

使用“停止并出错”导致工作流执行失败

当您创建并设置错误工作流时,n8n 会在执行失败时运行该工作流。这通常是由于节点设置错误或工作流内存不足等原因造成的。

您可以将“停止和错误”节点添加到您的工作流程中,以在您选择的情况下强制执行失败,并触发错误工作流程。