Telegram Trigger published, webhook confirmed by Telegram, but zero executions logged (Cloud)

Describe the problem/error/question

I’m on n8n Cloud, trying to set up a simple Telegram bot trigger. The workflow publishes successfully and the Telegram Trigger node shows the correct production webhook URL.
What I’ve verified:
getWebhookInfo shows the correct URL registered, pending_update_count: 0, no last_error_message
getMe confirms the bot token matches the bot I’m messaging
A manual POST to the webhook URL gets a real response from n8n (rejects with “Provided secret is not valid” as expected for an unauthenticated test)
A GET request to the webhook URL returns n8n’s expected 404 (“did you mean POST”), confirming the path is live
Group Privacy is disabled on the bot
Tried both “Test this trigger” (test mode) and Publish (production mode) — same result both times
Sent multiple real messages to the bot from Telegram directly during an active “Test this trigger” listening session — n8n showed “Waiting for you to create an event” the whole time and then timed out with nothing received
Zero entries appear in Executions.

What is the error message (if any)?

Please share your workflow

(Sel{
  "nodes": [
    {
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegramTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        0
      ],
      "id": "4bb53cc0-f346-4225-8960-055ab7f48ed2",
      "name": "Telegram Trigger",
      "webhookId": "ffc0a24c-ef07-45e1-92fa-6ebffe0406af",
      "retryOnFail": true,
      "credentials": {
        "telegramApi": {
          "id": "ZB6Qk7h1sAYSUD9A",
          "name": "Telegram account"
        }
      }
    }
  ],
  "connections": {},
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "fc4b105363ed2afdc15b5f51be2aecbb84ab0edfd49e88230981d352d9c3b1f0"
  }
}ect the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):default
  • n8n EXECUTIONS_PROCESS setting (default: own, main):default
  • Running n8n via (Docker, npm, n8n cloud, desktop app):n8n cloud, but same thing happened when hosted via npm on Windows 11
  • Operating system: Windows 11

@Ana_Zeljko great diagnostics. Failing identically on Cloud and npm plus toggling test/prod points at a webhook-registration conflict, not your setup. Telegram allows one webhook + secret_token per bot, so every test/prod switch and every instance overwrites it, and the instance you’re watching can end up with a secret Telegram no longer holds. Updates then drop silently, which is your “pending 0, no error, zero executions.”

Clean-slate:

  1. Clear Telegram’s side: open https://api.telegram.org/bot/deleteWebhook?drop_pending_updates=true
  2. Deactivate the workflow on the other instance so they aren’t fighting over the bot (ideally separate bots for test vs prod).
  3. Activate on one instance, message the bot, check Executions.

Also rule out known bug #30574: re-check getWebhookInfo ~30s after activating, not right away. If url has gone empty, n8n is silently clearing the webhook seconds after activation, that’s the bug, not you.

Hey @Ana_Zeljko, one extra thing worth checking after you do the deleteWebhook reset.

Make sure you’re only using one bot token across one active instance at a time. Since you mentioned it failed on both Cloud and npm/Windows, there’s a good chance both instances registered the webhook at different points with different secrets, leaving Telegram confused about which to send to.

The easiest way to confirm everything is clean after the reset:

Call getWebhookInfo: it should return an empty url field

Activate your workflow on one instance only

Call getWebhookInfo again ~30 seconds later to confirm the URL stuck as @achamm mentioned, bug #30574 can silently clear it

If you need to test locally alongside Cloud in the future, create a separate bot token for each environment, it avoids this conflict entirely and saves a lot of debugging headaches.

You already verified the hard parts, which narrows it nicely. I’d next test whether Telegram is sending the exact update type your trigger listens for, then recreate the trigger with a fresh production URL and compare getWebhookInfo immediately after activation. If that still shows zero executions, it’s likely platform-side routing or trigger registration state, not your bot token.