Telegram plugin: channel notifications not delivered to session
Description
The Telegram plugin (telegram@claude-plugins-official) receives messages and processes them correctly, but notifications/claude/channel never reaches the Claude Code session. Outbound (reply/react/edit) works fine — only inbound delivery is broken.
Environment
- Claude Code: 2.1.92
- OS: macOS (Darwin 25.4.0, Apple Silicon)
- Plugin runtime: Bun
- Plugin:
telegram@claude-plugins-official(enabled in settings.json)
Diagnosis
| Check | Result |
|-------|--------|
| Bot token valid | ✅ getMe returns bot info |
| Plugin process running | ✅ PID active, TCP connections to 149.154.166.110 (Telegram API) |
| Polling active | ✅ Long-poll connections established |
| access.json correct | ✅ sender ID in allowFrom |
| gate() passes | ✅ confirmed via ackReaction — 👀 emoji appears on sender's message |
| MCP outbound tools (reply/react) | ✅ work correctly |
| notifications/claude/channel delivery | ❌ never received by session |
Steps to reproduce
- Install and enable the Telegram plugin
- Configure bot token and pair a user (user appears in
allowFrom) - Set
ackReactioninaccess.jsonto verify plugin receives messages - Send a message from Telegram to the bot
- Observe: ack reaction appears (plugin processed the message), but Claude Code session receives no channel notification
Expected behavior
Messages should appear in the Claude Code session as <channel source="telegram" ...> blocks.
Actual behavior
Plugin receives and processes inbound messages (confirmed by ackReaction), calls mcp.notification({ method: 'notifications/claude/channel', ... }), but the notification is silently dropped — nothing appears in the session. The .catch() handler on the notification call does not fire (no stderr output), suggesting the MCP write succeeds but the client side ignores it.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗