# n8n 错误工作流教程

原创虚构输入与人工预期输出。未运行产品实例、未调用模型、未外发或发布。config.json 为字段教材，不是可导入 n8n/Dify/Flowise/Langflow 工作流。

## 1. 先定义错误台账的最小列
只保留定位故障需要的 workflow_id、workflow_name、execution_id、last_node 和脱敏消息。不要把完整请求体、凭据或客户资料整体复制到日志。

## 2. 新建 Error Trigger 工作流
建立独立错误处理流程，第一节点为 Error Trigger，后续 Code 节点读取 execution.error 或 trigger.error。本例保留两种 fixture，避免只兼容普通执行失败。

## 3. 在主流程选择错误处理流程
打开主流程 Workflow Settings，在 Error workflow 选择已保存的错误流程。保存只是完成绑定，必须另做真正失败执行观察；本教程没有修改任何线上实例。

## 4. 处理触发器失败时的空字段
触发器失败可能没有 execution.id、url 或 lastNodeExecuted。使用 null 表示未知，仍保留 workflow 信息；不要生成一个看似真实的执行编号。

## 5. 对错误文本做令牌脱敏
先替换 Authorization: Bearer 后的值与 token= 值，再保存。教材脚本用 TEST_SECRET 检查常见格式；正式日志需扩展已使用的密钥格式和访问权限。

## 6. 先看台账再考虑恢复
一次失败不等于业务没有执行。根据原执行记录和目标数据决定续跑；错误台账用于定位，不自动重试、外发通知或承诺防重复计费。

## 离线验收
运行 python3 check-fixture.py，仅检查固定输入与人工预期关系，不验证真实模型、产品节点或工作流执行。

## 官方来源
- [n8n 官方：错误工作流与错误数据](https://docs.n8n.io/build/flow-logic/handle-errors-gracefully)