Telegram channel notifications silently dropped when CLI is idle after agent task completion
Summary
Telegram MCP channel plugin delivers messages successfully (confirmed via ackReaction โ bot reacts with ๐), but Claude Code does not process the MCP notifications/claude/channel events when the CLI is in an idle/input-waiting state after an agent completes a task.
Environment
- macOS (Darwin 25.3.0)
- Claude Code CLI (latest)
- Telegram plugin v0.0.4 (
claude-plugins-official) - grammy-based long-polling, MCP stdio transport
Steps to Reproduce
- Start Claude Code with the Telegram channel plugin connected
- Send a message via Telegram โ agent responds normally
- Have the agent complete a multi-step task (e.g., code implementation, document generation)
- Agent says something like "I'll organize the docs and wait for your next message"
- Send a new message via Telegram
Expected: Claude Code processes the notification and responds
Actual: No response. The message is silently dropped.
Observed Behavior
| Action | Result |
|--------|--------|
| Telegram message while CLI idle | No response (๐ ack reaction confirms plugin received it) |
| Send 2โ3 repeated messages | Eventually gets a response |
| Type anything in CLI to "wake" session | Telegram messages work again |
| Agent completes another task | Back to unresponsive state |
Diagnosis
ackReaction: "๐"was added toaccess.jsonto verify plugin-side message receipt โ plugin receives all messages correctlymcp.notification({ method: 'notifications/claude/channel', ... })is called without errors (the.catch()on line 945 ofserver.tsdoes not fire)- The issue is Claude Code's MCP notification event loop not processing incoming channel notifications when the CLI is waiting for user input after an agent task completes
- This is not a plugin bug โ the notification is sent over stdio but Claude Code doesn't act on it
Workaround
Currently the only workaround is to type something in the CLI to "activate" the session, after which Telegram messages are processed again โ until the next agent task completion cycle.
Additional Context
The pattern suggests that after an agent finishes work and Claude Code returns to its input prompt, the MCP notification listener may be suspended or deprioritized. The fact that repeated messages (2โ3x) sometimes break through suggests a race condition or buffering issue rather than a complete listener shutdown.
This issue has 3 comments on GitHub. Read the full discussion on GitHub โ