Telegram plugin: Channel notifications not waking Claude Code from idle state

Resolved 💬 1 comment Opened Apr 8, 2026 by undelete83 Closed Apr 8, 2026

Description

The Telegram plugin receives messages and successfully delivers MCP notifications/claude/channel notifications to Claude Code, but Claude Code does not wake from its idle state to process them. Telegram messages are silently ignored.

Environment

  • Claude Code versions tested: 2.1.87, 2.1.94, 2.1.96 (all affected)
  • Telegram plugin: 0.0.4
  • OS: Ubuntu (Hetzner VPS)
  • Started via systemd service in tmux with --dangerously-skip-permissions --permission-mode bypassPermissions

Steps to Reproduce

  1. Start Claude Code with the Telegram plugin enabled
  2. Give Claude an initial prompt ("Answer Telegram messages")
  3. Claude responds and goes idle (waiting for input)
  4. Send a Telegram message to the bot
  5. The plugin receives the message and sends an MCP notification
  6. Claude Code does NOT wake up to process it

Evidence via strace

Plugin (bun) successfully sends the notification:

write(12, "{\"method\":\"notifications/claude/channel\",\"params\":{\"content\":\"hallo\",\"meta\":{\"chat_id\":\"REDACTED\",\"message_id\":\"2113\",...}},\"jsonrpc\":\"2.0\"}\n", 211) = 211

Claude Code process (node) successfully READS the notification:

read(33, "{\"method\":\"notifications/claude/channel\",\"params\":{\"content\":\"hallo\",\"meta\":{\"chat_id\":\"REDACTED\",\"message_id\":\"2115\",...}},\"jsonrpc\":\"2.0\"}\n", 65536) = 211

But Claude Code remains idle and does not process the message or reply.

Additional context

  • No errors in plugin logs (catch block for failed delivery is never triggered)
  • bypass permissions is enabled — no permission prompts blocking
  • All Telegram plugin tools are in the allow list (settings.local.json)
  • Bot token is valid (getMe returns OK)
  • No webhook set, polling mode works correctly
  • This used to work and broke with a recent update
  • When Claude Code is asked directly in the terminal "Did you receive a Telegram message?", it says "No"

Expected Behavior

Claude Code should wake from idle when receiving a notifications/claude/channel MCP notification and process the incoming message, as it did in previous versions.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗