Telegram Trigger 每條訊息執行 3 次(重複執行)

我的 Telegram bot 工作流程會對每條傳入的訊息處理 3 次 —
每條訊息會建立 3 個獨立的執行,所以 bot 會回覆 3 次。
我已經試過的方法:

  • 透過 deleteWebhook 刪除 webhook(收到「Webhook 已刪除」)
  • 重新發佈工作流程
  • 只有 1 個工作流程是活動的
  • 在 Sheet 節點上啟用「Execute Once」
  • Code 節點設為「Run Once for All Items」
    仍然每條訊息執行 3 次。使用 n8n Cloud。如何修復?

描述問題/錯誤/問題

錯誤訊息是什麼(如有的話)?

請分享您的工作流程

(在您的畫布上選擇節點,然後使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製並貼上工作流程。)

分享最後一個節點傳回的輸出

n8n 設定的相關資訊

  • n8n 版本:
  • 資料庫(預設:SQLite):
  • n8n EXECUTIONS_PROCESS 設定(預設:own, main):
  • 執行 n8n 的方式(Docker、npm、n8n cloud、desktop app):
  • 作業系統:

@Wey89_Gmail 這幾乎總是表示同一個機器人令牌在多個 Telegram 觸發器中處於活動狀態,所以每個副本都會處理相同的更新。3x = 它在 3 個地方是活動的。檢查是否有重複/複製的工作流程、測試和生產版本都處於活動狀態,或另一個 n8n 實例使用相同的機器人,並停用額外的。Telegram 每個機器人只允許一個活動觸發器,一旦只有一個,重複就會停止。

Telegram Trigger 對每則訊息觸發 3 次幾乎總是由以下兩個原因之一造成的:

  1. 多個消費者附加到同一個 bot token。Telegram 每個 bot 只允許一個活躍接收器 — 要麼是輪詢 (getUpdates),要麼是單一 webhook,絕不能同時使用兩者,也不能跨越多個實例。如果同一個 bot token 用於另一個工作流、另一個 n8n 實例,或者存在來自先前啟動的殘留 webhook,Telegram 會將同一個更新傳遞給每一個 → 導致重複。
    檢查方式:呼叫 Telegram 的 getWebhookInfo 方法來查詢你的 bot token — 它會顯示是否目前設定了 webhook 以及待處理的更新計數。如果你使用的是 n8n Telegram Trigger (它進行輪詢),請確保沒有設定 webhook (使用 deleteWebhook 來清除舊的),並確認該 token 在第二個工作流/實例中不是活躍的。

  2. Telegram 在重試因為它沒有得到快速的 200 回應。如果 trigger 沒有在 Telegram 的逾時時間內確認,Telegram 會重新傳送同一個更新 — 你經常會看到它到達 2-3 次。這發生在重型工作在回應被發送前運行時。修復方式:立即確認並卸載緩慢步驟 (先回應,然後進行 LLM/API 工作,或將其推送到佇列)。三次重新傳送是典型的 Telegram 重試特徵。

如何區分它們:如果 getWebhookInfo 顯示在你也進行輪詢時設定了 webhook,那就是第 1 種。如果重複相隔幾秒鐘且你的工作流很慢,那就是第 2 種。

無論原因如何都能停止重複的修復方式:在 trigger 之後立即添加去重保護 — 存儲每個 Telegram update_id (或 message_id) 並在你已經處理過時跳過。這使工作流即使 Telegram 重複傳遞也是冪等的。

你的設置是什麼 — 自託管且有多個實例,你使用的是輪詢還是 webhook?這樣就能確定了。