[Plugin Bug] Telegram plugin consumes incoming messages but never delivers them to the session (Windows)

Resolved 💬 3 comments Opened Mar 22, 2026 by mpeexpress Closed Mar 25, 2026

Description

The official Telegram plugin (telegram@claude-plugins-official) polls getUpdates and consumes all incoming messages, but never delivers them to the Claude Code session as <channel source="telegram"> tags. Messages are silently lost.

Sending works fine (the reply tool sends messages successfully). Only receiving is broken.

Environment

  • OS: Windows Server 2025 Datacenter 10.0.26100
  • Claude Code: latest (installed via npm)
  • Plugin: telegram@claude-plugins-official

Steps to Reproduce

  1. Enable the Telegram plugin, pair a Telegram user
  2. Start a new Claude Code session
  3. Send a message to the bot from Telegram
  4. The message never appears in the session

Diagnosis

  • getMe returns OK - bot token is valid
  • reply tool sends messages successfully
  • External getUpdates call returns 409 Conflict - confirming the plugin IS actively polling
  • But no <channel source="telegram"> tags ever appear in the session
  • pending_update_count is always 0 - plugin consumes the updates
  • After /reload-plugins: polling stops entirely (no more 409), but messages still do not arrive. Manual getUpdates now works and shows the messages were queued by Telegram - proving they were never forwarded to the session.

Expected Behavior

Incoming Telegram messages should appear as <channel source="telegram" ...> tags in the session, as documented.

Actual Behavior

Messages are consumed by the plugin polling loop but never forwarded to the session. They are permanently lost.

Workaround

Disabled the plugin ("telegram@claude-plugins-official": false in settings.json) and built a custom polling bridge script that saves messages to local files.

Notes

This may be Windows-specific. The IPC/event mechanism between the plugin polling thread and the Claude Code session appears to be broken on Windows. The plugin works partially (sending OK, auth OK, polling OK) - only the internal message delivery pipeline fails.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗