n8n 錯誤處理 重試機制 Error Trigger 進階技巧

n8n 錯誤處理與重試機制:打造穩定不掛的自動化流程

工作流跑到一半掛掉怎麼辦?這篇教你用 Error Trigger、Try/Catch、重試機制,讓 n8n 自動化流程穩穩跑不中斷。附實戰範例和錯誤通知設定。

N8NMarket 2026年4月13日 9 分鐘閱讀

n8n 錯誤處理與重試機制:打造穩定不掛的自動化流程

工作流跑起來很開心,直到某天它掛了,你才發現過去三天的資料都沒處理。這篇教你怎麼讓 n8n 工作流「掛了會自動重試」「掛了會通知你」「掛了不會影響其他資料」。


為什麼工作流會掛?

先搞清楚常見的掛點:

原因頻率範例
API 暫時無回應很常見呼叫 OpenAI API,對方伺服器忙碌回 429
認證過期偶爾Google OAuth Token 過期(OAuth 設定教學
資料格式不對常見預期收到 JSON,結果收到 HTML 錯誤頁
速率限制常見API 每分鐘只能呼叫 60 次,你超過了
伺服器問題少見VPS 記憶體滿了、硬碟滿了
節點設定錯誤偶爾Expression 寫錯、欄位名稱打錯(常見錯誤 Top 10

掛一次不可怕,可怕的是掛了你不知道,資料就這樣消失了。


方法一:Error Trigger 節點 — 掛了自動通知

Error Trigger 是 n8n 的「保險機制」。當你的主工作流掛了,它會自動觸發另一個工作流來處理善後。

設定步驟

Step 1:建立錯誤處理工作流

  1. 新建一個工作流,命名為「Error Handler」
  2. 加入 Error Trigger 節點當起點
  3. 後面接你想要的通知方式(Email、Slack、LINE 都行)

Step 2:接上通知節點

Error Trigger 會傳出這些資訊:

{
  "execution": {
    "id": "12345",
    "url": "https://your-n8n.com/execution/12345",
    "error": {
      "message": "The API returned a 429 status code"
    }
  },
  "workflow": {
    "id": "1",
    "name": "訂單處理工作流"
  }
}

你可以用這些資訊組出通知訊息,例如:

⚠️ 工作流「訂單處理工作流」掛了! 錯誤:The API returned a 429 status code 查看詳情:https://your-n8n.com/execution/12345

Step 3:在主工作流指定錯誤處理工作流

  1. 打開你的主工作流
  2. 點右上角的齒輪(Settings)
  3. 在「Error workflow」欄位選擇剛才建立的「Error Handler」
  4. 儲存

這樣主工作流掛了,Error Handler 就會自動跑起來通知你。

通知管道建議

管道適合場景設定難度
Email(Gmail)一般通知低(需要 Google OAuth
Slack團隊協作
LINE Notify台灣常用
Telegram個人通知

方法二:節點層級的錯誤處理 — On Error 設定

每個節點都有「On Error」設定,讓你決定這個節點掛了要怎麼處理。

三種選項

1. Stop Workflow(預設)

節點掛了,整個工作流停下來。適合不能出錯的關鍵步驟。

2. Continue on Fail

節點掛了,跳過這筆資料,繼續處理下一筆。適合處理大量資料時,不想因為一筆壞資料卡住整個流程。

設定方式:點節點 → Settings → 把「Continue On Fail」打開。

掛掉的那筆資料會多一個 error 欄位,你可以在後面的節點用 Expression 判斷:

{{ $json.error ? "這筆有錯" : "正常" }}

3. Continue Using Error Output

這是比較新的功能。節點掛了,資料會走「error output」那條線,你可以另外處理。這就是 n8n 版本的 Try/Catch。


方法三:Try/Catch 設計模式

想要更精細的錯誤處理,可以用 Try/Catch 的概念來設計工作流。

做法

  1. 把可能會掛的節點設定為「Continue Using Error Output」
  2. 正常的資料走「success」那條線 → 繼續後面的流程
  3. 錯誤的資料走「error」那條線 → 做特別處理
[HTTP Request] ─── success ──→ [處理資料] → [存入資料庫]

       └── error ──→ [記錄錯誤] → [通知管理員]

什麼時候用 Try/Catch?

  • 呼叫外部 API(對方可能會掛)
  • 處理使用者輸入的資料(格式可能不對)
  • 任何「有可能失敗,但失敗不該影響其他資料」的步驟

方法四:重試機制設定

有些錯誤是「暫時的」— API 伺服器忙碌、網路瞬斷。這種情況重試一次可能就好了。

節點內建重試

大部分節點都有「Retry On Fail」選項:

  1. 點節點 → Settings
  2. 打開「Retry On Fail」
  3. 設定:
    • Max Tries:最多重試幾次(建議 3 次)
    • Wait Between Tries:每次重試間隔多久(建議 1000-5000 毫秒)

進階:指數退避(Exponential Backoff)

如果你遇到 API 速率限制(429 錯誤),固定間隔重試可能會一直被擋。比較聰明的做法是「指數退避」— 每次重試等更久:

  • 第 1 次重試:等 1 秒
  • 第 2 次重試:等 2 秒
  • 第 3 次重試:等 4 秒

n8n 內建的重試不支援指數退避,但你可以用 Loop + Wait 節點自己做:

[HTTP Request] → 成功?
├── 是 → [繼續處理]
└── 否 → [Wait 節點(等待時間用 Expression 算)] → [回到 HTTP Request]

Wait 時間的 Expression:

{{ Math.pow(2, $runIndex) * 1000 }}

這樣第一次等 1 秒、第二次等 2 秒、第三次等 4 秒。


實戰:穩定的 API 呼叫工作流

把前面的技巧組合起來,做一個「不容易掛」的 API 呼叫工作流。

場景

每小時從外部 API 抓資料,存進 Google Sheets

工作流架構

[Cron Trigger(每小時)]


[HTTP Request] ─ Retry On Fail: 3 次

    ├── success → [處理資料] → [Google Sheets 寫入]
    │                              │
    │                              └── error → [記錄失敗行] → [Email 通知]

    └── error → [判斷錯誤類型]

                    ├── 429 / 503 → [Wait 30 秒] → [重試]
                    └── 其他 → [記錄錯誤] → [Email 通知]

關鍵設定

  1. HTTP Request 節點

    • Retry On Fail:打開
    • Max Tries:3
    • Wait Between Tries:2000ms
    • On Error:Continue Using Error Output
  2. 判斷錯誤類型(IF 節點):

    • 條件:{{ $json.error.message.includes("429") || $json.error.message.includes("503") }}
  3. 錯誤通知

    • 用 Gmail 或 LINE Notify 通知自己

錯誤通知範本

Email 通知範本

主旨:[n8n 錯誤] {{ $json.workflow.name }} 執行失敗

內容:

工作流名稱:{{ $json.workflow.name }}
錯誤訊息:{{ $json.execution.error.message }}
執行時間:{{ $now.toISO() }}
查看詳情:{{ $json.execution.url }}

請盡快檢查!

LINE Notify 範本

⚠️ n8n 工作流掛了
名稱:{{ $json.workflow.name }}
錯誤:{{ $json.execution.error.message }}
時間:{{ $now.format('YYYY-MM-DD HH:mm') }}

錯誤處理的設計原則

  1. 每個重要工作流都要設 Error Trigger — 就算你覺得它不會掛
  2. 大量資料處理用 Continue on Fail — 不要因為一筆壞資料卡住全部
  3. API 呼叫都開重試 — 網路抖動很正常,重試一次通常就好
  4. 區分暫時性 vs 永久性錯誤 — 429 可以重試,401 要去換 Token
  5. 定期檢查錯誤日誌 — 不要設了通知就不看

總結

技巧用途設定難度
Error Trigger工作流掛了自動通知
Continue on Fail跳過壞資料繼續跑
Try/Catch(Error Output)精細處理不同錯誤
Retry On Fail暫時性錯誤自動重試
指數退避處理 API 速率限制

先從 Error Trigger 通知開始設,至少工作流掛了你會知道。其他的再慢慢加。

想拿現成的錯誤處理模板?本週限量包裡有完整的錯誤處理工作流模板 >> n8nstart.cc/weekly


延伸閱讀

外部參考: