Telegram channel: bot receives/acks messages but never relays them into the connected Claude Code session

Status Open
Reported on v2.1.216
Maintainer reply None cached
Activity 0 comments · opened Jul 30, 2026

Telegram channel: inbound messages acknowledged by the bot but never reach the connected session

Claude Code version: 2.1.216
Plugin: telegram@claude-plugins-official v0.0.6
OS: macOS 26.5.2 (build 25F84)
Launch: claude --channels plugin:telegram@claude-plugins-official from a Terminal.app session

Steps to reproduce

  1. Configure the Telegram plugin per its README (/telegram:configure <token>, pair via /telegram:access pair <code>).
  2. Launch a session with claude --channels plugin:telegram@claude-plugins-official and leave it running/idle.
  3. From the paired Telegram account, DM the bot.

Expected behavior

The bot's typing indicator fires, and the message arrives in the connected Claude Code session as a <channel source="telegram" ...> block, per the plugin's documented behavior, triggering a reply.

Actual behavior

The typing indicator fires (confirming the message reached the bot), but no <channel> notification ever surfaces in the connected session, and no reply is ever sent. This reproduced on every attempt.

Diagnostics already ruled out

  • Not a "session must stay open" issue — reproduced with the launching session actively running and idle, watching for the notification in real time.
  • Not a delivery failure to the bot — confirmed via direct Telegram Bot API calls:
  • getMe returns the correct bot identity.
  • getUpdates shows an empty queue immediately after sending a test message (i.e. the message was received and consumed by the plugin's poller, not stuck pending).
  • Not session-ambiguity — traced the terminal shell's process ancestry (ps -o ppid=) up through to the claude process (confirmed pid match) and confirmed the Telegram MCP server (bun server.ts) is a direct child of that same claude process, i.e. this is provably the session that should be receiving the notification.
  • Not a stale plugin version — installed version (0.0.6) matches the current marketplace cache, no update available.

Isolated failure point

The break is specifically between the plugin's inbound handler (which fires the typing indicator and sends a notifications/claude/channel MCP notification, per server.ts) and that notification actually surfacing as a live turn in the connected Claude Code session. Everything upstream of that (Telegram delivery, bot receipt, access/pairing) is confirmed working.

Additional confirming detail: bot commands that reply directly from server.ts without ever touching the Claude session — /status, /start, /help — work correctly every time (e.g. /status returns "Paired as <name>." from the hardcoded reply at line 712). Only plain messages, which require the session-relay path, fail to produce any reply. This isolates the break precisely to the relay, not to Telegram delivery, the bot process, or access control.

Impact

The Telegram channel is unusable for its documented purpose — reaching an existing Claude Code session from a phone — despite correct setup, valid pairing, and a live, correctly-connected session.

View original on GitHub ↗