目錄
n8n 錯誤處理:重試、失敗後繼續與錯誤通知流程
自動化流程最怕的是悄悄失敗:API 暫時無法連線、資料格式不對、憑證過期……如果沒有人發現,可能好幾天都沒有寄出通知。這一節介紹 n8n 的錯誤處理機制。
1. 自動重試(Retry On Fail)
很多錯誤是暫時性的(網路不穩、API 偶爾逾時)。在節點的 Settings 分頁:
- Retry On Fail:開啟
- Max Tries:最多嘗試幾次,例如 3
- Wait Between Tries (ms):每次間隔,例如 5000(5 秒)

適合呼叫外部 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
最重要的一步:建立一個專門處理錯誤的工作流程,任何工作流程失敗時自動通知你。
建立錯誤工作流程
- 新增工作流程,命名為「錯誤通知」。
- 第一個節點選擇 Error Trigger。
- 接上通知節點(Telegram、Email、Slack 等),訊息內容:
⚠️ n8n 工作流程執行失敗
流程:{{ $json.workflow.name }}
節點:{{ $json.execution.lastNodeExecuted }}
錯誤:{{ $json.execution.error.message }}
時間:{{ $now.toFormat('yyyy-MM-dd HH:mm') }}
查看:{{ $json.execution.url }}
- 儲存。Error Trigger 開頭的工作流程不需要發布也會運作。

指定給其他工作流程
到每個需要監控的工作流程:選單 → Settings → Error workflow,選擇「錯誤通知」。
之後只要這個工作流程以「失敗」狀態結束,就會自動傳送通知。
錯誤工作流程只在自動執行(排程、Webhook 等)失敗時觸發,手動測試失敗不會觸發。
5. 查看與重新執行

- Executions 中篩選 Error 狀態,可以看到所有失敗的執行。
- 點進失敗的執行,按 Debug in editor 可以用當時的資料重新測試。
- 修正問題後,可以重新執行失敗的那次。
6. 讓資料可以追溯
- 在 Settings 中設定保存執行紀錄的策略:可以只保存失敗的執行,節省資料庫空間。
- 重要的流程,可以在最後寫一筆紀錄到試算表或資料庫,方便日後查詢「哪筆資料在什麼時候被處理過」。
建議的做法
| 情境 | 建議 |
|---|---|
| 呼叫外部 API | 開啟 Retry On Fail |
| 批次處理多筆資料 | Continue (using error output),記錄失敗的資料 |
| 資料有問題不該繼續 | Stop and Error |
| 所有正式運作的工作流程 | 設定 Error workflow |
養成習慣:每建立一個要長期運作的工作流程,就先設定好錯誤通知。
更新於 2026年10月12日