[BUG] plugin:telegram@claude-plugins-official reports connected but does not poll Bot API in claude 2.1.126

Open 💬 2 comments Opened May 3, 2026 by tjhucka

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

When claude is started with --channels plugin:telegram@claude-plugins-official in version 2.1.126, the Telegram plugin completes its MCP handshake successfully (/mcp UI shows plugin:telegram:telegram · ✔ connected) and prints the standard "Listening for channel messages from: plugin:telegram@claude-plugins-official" banner, but the plugin does not actually poll the Telegram Bot API for incoming messages. Messages sent to the bot accumulate in the API's getUpdates queue and are never delivered to the running claude session.

Downgrading to claude 2.1.114 resolves the issue immediately with no other changes.

Reproduction

  1. Install claude 2.1.126: npm install -g @anthropic-ai/claude-code@2.1.126
  2. Start claude with the Telegram channel: claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
  3. Send a message to your Telegram bot from your account
  4. Observe: claude session shows the "Listening" banner, /mcp lists telegram as connected, but the inbound message never appears in the session pane (no ← telegram · … line, no agent activity).
  5. Downgrade: npm install -g @anthropic-ai/claude-code@2.1.114
  6. Restart claude with the same flags
  7. Observe: queued messages (sometimes hours old) deliver immediately and the session responds normally. Subsequent messages also flow.

Environment

  • claude version (broken): 2.1.126
  • claude version (working): 2.1.114
  • Plugin: plugin:telegram@claude-plugins-official v0.0.5
  • macOS: Tahoe 26.4.1
  • Hardware: Mac mini (Apple Silicon)
  • Run context: launchd LaunchAgent → frank-runner.sh → tmux → frank-loop.sh → claude. Reproduction also confirmed when claude is launched directly from an interactive shell, not just via the LaunchAgent.

Diagnostic notes

  • --debug flag shows the plugin connecting successfully:
[DEBUG] MCP server "plugin:telegram:telegram": Successfully connected (transport: stdio) in 338ms
[DEBUG] MCP server "plugin:telegram:telegram": Connection established with capabilities: {"hasTools":true,"hasPrompts":false,"hasResources":false,"hasResourceSubscribe":false,"serverVersion":{"name":"telegram","version":"1.0.0"}}
[DEBUG] [MCP] Server "plugin:telegram:telegram" connected with subscribe=false
[DEBUG] MCP server "plugin:telegram:telegram": Channel notifications registered

No subsequent log entries for the plugin, no errors, no Bot API call attempts.

  • lsof -nP -p $CLAUDE_PID shows TCP connections to the Anthropic LLM API (160.79.104.10:443 x N) but no connections to Telegram's IP ranges (149.154.x.x or 91.108.x.x) at any point, even with extended sampling.
  • Bot API confirms messages were posted to the bot: https://api.telegram.org/bot<TOKEN>/getUpdates returns the queued messages until they are manually consumed by another client.
  • Other MCP plugins in the same session work correctly (Supabase, Playwright, Context7, Sequential-thinking, etc.).

Impact

For users running claude as a long-lived agent with Telegram as the operator-control channel (the use case --channels was designed for), this regression silently disables remote control. The plugin appears healthy in every UI surface but is functionally dead. We spent ~6 hours debugging across two days assuming the failure was elsewhere (launchd, TCC, plugin config, lsof artifacts, macOS Tahoe permissions) before isolating it to the version bump.

Workaround

Pin to 2.1.114 until a fix ships:

npm install -g @anthropic-ai/claude-code@2.1.114

And avoid running claude update while pinned.

What Should Happen?

When claude --channels plugin:telegram@claude-plugins-official is started and the Telegram MCP plugin reports as connected (visible in /mcp UI as ✔ connected), the plugin should poll the Telegram Bot API's getUpdates endpoint and deliver inbound messages to the running claude session. Messages should appear in the session pane as ← telegram · <chat_id>: <message> and the agent should be able to respond.

This works correctly in 2.1.114 and worked correctly in earlier versions. In 2.1.126, the plugin appears connected but no Bot API polling actually occurs, so messages never reach the session.

The plugin's MCP handshake completes and reports as connected, but the plugin never polls the Telegram Bot API. Inbound messages accumulate in the bot's getUpdates queue and are never delivered to the claude session. No errors are surfaced anywhere; the only signal is that messages don't arrive.

Error Messages/Logs

Steps to Reproduce

  1. Install claude 2.1.126:

npm install -g @anthropic-ai/claude-code@2.1.126

  1. Verify the version:

claude --version
(should report 2.1.126)

  1. Start claude with the Telegram channel and the channel plugin enabled:

claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions

  1. Confirm the plugin reports as connected by typing /mcp inside the session and observing:

plugin:telegram:telegram · ✔ connected

  1. Send a Telegram message to your bot from your personal Telegram account.
  1. Wait 60+ seconds and observe: the message does NOT appear in the claude session pane (no ← telegram · … line, no agent activity), even though the bot's getUpdates queue contains the message.
  1. Downgrade to 2.1.114:

npm install -g @anthropic-ai/claude-code@2.1.114

  1. Restart claude with the same flags as step 3.
  1. Observe: queued messages (sometimes hours old) deliver immediately to the session pane and the agent responds normally.

Reproduced multiple times across two separate Mac mini sessions on macOS Tahoe 26.4.1, both via launchd LaunchAgent and direct interactive shell launch.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.126 (broken). Confirmed working in 2.1.114.

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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