Telegram plugin: Channel notifications not waking Claude Code from idle state
Resolved 💬 5 comments Opened Apr 8, 2026 by undelete83 Closed May 23, 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
- Start Claude Code with the Telegram plugin enabled
- Give Claude an initial prompt ("Answer Telegram messages")
- Claude responds and goes idle (waiting for input)
- Send a Telegram message to the bot
- The plugin receives the message and sends an MCP notification
- Claude Code does NOT wake up to process it
Evidence via strace
Plugin (bun) successfully sends the notification:
write(fd, "{\"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(fd, "{\"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 permissionsis enabled — no permission prompts blocking- All Telegram plugin tools are in the allow list (
settings.local.json) - Bot token is valid (
getMereturns 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.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗