目錄

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日