n8n 常見錯誤 Top 10:原因分析與解法整理
整理 n8n 使用者最常遇到的 10 個錯誤訊息,每個都附上白話原因說明、解法步驟和預防方法,下次看到錯誤不用再慌。
n8n 跑到一半噴錯誤?別慌。這篇整理了 10 個最常見的錯誤訊息,每個都有白話翻譯、原因分析和解法,查一下就能修。
#1:NodeOperationError: The resource you are requesting could not be found
錯誤訊息
ERROR: The resource you are requesting could not be found
白話原因
你指定的東西不存在。例如你在 Google Sheets 節點填了一個不存在的試算表 ID,或是 Slack 節點填了一個不存在的頻道名稱。
解法
- 確認你填的 ID / 名稱是對的
- 去對應的服務看資源是不是還在(沒被刪掉)
- 確認你的憑證有存取這個資源的權限
預防方法
用「下拉選單」選資源,而不是手動填 ID。大部分 n8n 節點都支援下拉選單直接選。
#2:NodeApiError: 401 Unauthorized
錯誤訊息
ERROR: Request failed with status code 401
白話原因
你的帳號密碼(憑證)過期了、打錯了、或被撤銷了。
解法
- 去 n8n 的 Credentials 頁面,重新測試你的憑證
- 如果是 OAuth 類型,重新授權(點「Sign in with…」)
- 如果是 API Key 類型,去對應服務重新產生 Key,貼到 n8n
預防方法
- Google OAuth 記得把 OAuth 發布到 Production(不然 7 天過期),詳細看 n8n Google OAuth 設定攻略
- API Key 不要設過期時間(如果服務允許的話)
踩過的坑一次整理:這個 401 錯誤是最多人碰到的,尤其是 Google 服務。
#3:NodeApiError: 429 Too Many Requests
錯誤訊息
ERROR: Request failed with status code 429
白話原因
你打 API 太快了,被對方限速了。
解法
- 在 HTTP Request 節點開啟 Batching:Options → Batch → 設定每批次數量和延遲時間
- 減少同時跑的 item 數量
- 在節點之間加 Wait 節點,設定等待 1-2 秒
預防方法
- 先看對方 API 的速率限制(Rate Limit)是多少
- 大量資料用 Loop Over Items 分批處理
- 設定 Error Workflow 做自動重試
#4:NodeOperationError: The property "xxx" does not exist
錯誤訊息
ERROR: The property "email" does not exist on item 0
白話原因
你用 Expression 去抓一個不存在的欄位。可能是打錯字、大小寫不對、或是前面的節點沒有回傳這個欄位。
解法
- 點前一個節點的「Output」,看它實際回傳的 JSON 長什麼樣
- 確認欄位名稱完全一致(大小寫敏感)
- 用 Optional Chaining 防爆:
{{ $json.email ?? '' }}
預防方法
寫 Expression 的時候,用 n8n 的拖拉功能:點擊欄位旁邊的 fx,然後從左邊的資料面板直接拖欄位進來,就不會打錯字。
#5:Error: connect ECONNREFUSED
錯誤訊息
ERROR: connect ECONNREFUSED 127.0.0.1:5432
白話原因
n8n 連不到你指定的服務。可能是那個服務沒在跑、IP 位址錯了、Port 不對、或防火牆擋住了。
解法
- 確認目標服務有在執行
- 確認 IP 和 Port 正確
- 如果是 Docker,確認網路設定(同一個 Docker network)
- 檢查防火牆規則
預防方法
- 用 Docker Compose 的話,用 service name 而不是
localhost(例如postgres而不是127.0.0.1) - 自架的資料庫記得開放對應的 port
#6:NodeOperationError: No items(空資料)
錯誤訊息
ERROR: No items returned / Input data is empty
白話原因
前面的節點沒有傳任何資料過來。常見於:IF 節點全部都走了另一邊、API 回傳空陣列、或是過濾條件太嚴格。
解法
- 從前面的節點開始逐步檢查,看資料從哪裡開始消失
- IF 節點檢查條件邏輯對不對
- API 確認回傳值(可能是 query parameter 需要調整)
預防方法
在可能產生空資料的節點後面加 IF 節點,判斷 {{ $input.all().length > 0 }},沒資料的時候走另一條路(例如發通知或跳過)。
#7:SyntaxError: Unexpected token 在 Expression 裡
錯誤訊息
ERROR: Expression is not valid
SyntaxError: Unexpected token '}'
白話原因
你的 Expression 語法有錯。可能是括號不對稱、用了不支援的語法、或是引號搞混了。
解法
- 檢查
{{ }}裡面的內容,括號有沒有對稱 - 字串用一致的引號(不要混用
'和") - 不要在 Expression 裡用
if/else,改用三元運算子? : - 複雜邏輯改用 Code 節點
預防方法
先在 Expression 編輯器裡面測試,看預覽結果對不對再儲存。更多語法範例看 n8n Expression 語法速查表。
#8:NodeOperationError: Workflow could not be started
錯誤訊息
ERROR: The workflow can not be activated because it does not contain any nodes which could start the workflow
白話原因
你的 Workflow 沒有 Trigger 節點。n8n 不知道什麼時候要開始跑。
解法
加一個 Trigger 節點在最前面。常用的 Trigger:
| Trigger | 用途 |
|---|---|
| Schedule Trigger | 定時執行(每小時、每天) |
| Webhook | 外部觸發 |
| Manual Trigger | 手動按一下跑(測試用) |
| Email Trigger | 收到 Email 時觸發 |
預防方法
每個 Workflow 都要有一個 Trigger 節點。建議一開始就放一個 Manual Trigger 方便測試。
#9:NodeApiError: 403 Forbidden
錯誤訊息
ERROR: Request failed with status code 403
白話原因
你的憑證有效,但沒有「權限」做你要做的事。跟 401 不同的是:401 是身份不對,403 是身份對了但權限不夠。
解法
- 確認你的 API Key 或 OAuth 有對應的權限(Scope)
- Google 服務:確認你啟用了對應的 API(GCP → API 和服務 → 程式庫)
- 第三方服務:確認你的帳號方案有 API 權限(有些是付費功能)
預防方法
設定憑證的時候,給足夠的權限。但不要給太多——只開需要的就好。
#10:Error: ETIMEOUT / Error: ESOCKETTIMEDOUT
錯誤訊息
ERROR: connect ETIMEDOUT
ERROR: ESOCKETTIMEDOUT
白話原因
連線超時。對方的伺服器回應太慢、網路不穩、或是對方的服務暫時掛了。
解法
- 等幾分鐘再試一次(可能是對方暫時塞車)
- 在 HTTP Request 節點增加 Timeout 時間(Options → Timeout)
- 設定 Error Workflow 做自動重試
預防方法
- 對重要的 API 呼叫設定重試機制
- 用 Error Workflow 在失敗時發通知(Slack / Email)
- 監控 n8n 的 Execution 紀錄,及早發現問題
通用除錯 SOP
不管遇到什麼錯誤,這個 SOP 都適用:
Step 1:看錯誤訊息
n8n 的錯誤訊息通常會告訴你問題在哪。紅色的節點點進去,看完整的 Error Message。
Step 2:逐步測試
一個一個節點跑「Test step」,看資料從哪裡開始出問題。
Step 3:看資料
用 Debug 節點或直接看每個節點的 Output,確認資料格式符合預期。
Step 4:開 Debug 模式
自架 n8n 可以設定環境變數 N8N_LOG_LEVEL=debug,看更詳細的 log。
Step 5:查社群
n8n 的 官方社群論壇 有很多人分享錯誤解法,搜尋你的錯誤訊息通常能找到答案。
先跑起來再說。大部分錯誤都不嚴重,照著上面的 SOP 走一遍通常就能修好。
延伸閱讀
- n8n Expression 語法速查表 — 避免 Expression 語法錯誤
- n8n Google OAuth 設定攻略 — 解決 401/403 憑證問題
- n8n Webhook 完全攻略 — Webhook 相關錯誤排除
- n8n Expression 與進階技巧大全 — 進階技巧總整理
外部參考:
每週限量包裡有附 n8n 除錯 checklist 和 Error Workflow 模板,直接匯入就能用。
FAQ
n8n 有辦法自動重試失敗的節點嗎?
有。在節點的 Settings 裡可以設定 Retry On Fail,設定重試次數和間隔。也可以用 Error Workflow 做更複雜的錯誤處理邏輯。
錯誤太多 Execution 紀錄看不完怎麼辦?
可以在 Execution 列表用 Filter 只看「失敗」的紀錄。自架 n8n 的話也可以設定 EXECUTIONS_DATA_PRUNE=true 自動清理舊紀錄。
n8n 的 Error Workflow 是什麼?
Error Workflow 是一個專門處理錯誤的 Workflow。當其他 Workflow 發生錯誤時,n8n 會自動觸發 Error Workflow,你可以在裡面發 Slack 通知、寄 Email、或是記錄到資料庫。設定方式:Workflow Settings → Error Workflow。