Telegram channel: MCP notification resolves OK but never surfaces as inbound message
Summary
Messages sent to a paired Telegram bot are correctly gated and handed off to the session via MCP, but never appear as an inbound <channel> message in the Claude Code session — even minutes after a stable reconnect.
Setup
- Telegram channel plugin (
claude-plugins-official/telegram, v0.0.6) - Bot token rotated, sender paired via
/telegram:access pair <code>— pairing confirmed working (allowFromupdated, approval marker consumed) - Confirmed via Telegram's
getWebhookInfo:pending_update_count: 0immediately after sending — the bot's long-poller is actively consuming updates
What I verified (via temporary debug logging added to server.ts)
gate(ctx)correctly returns{ action: 'deliver' }for the paired sender on every message.- The subsequent
mcp.notification({ method: 'notifications/claude/channel', ... })call resolves successfully (.then()fires, no error) — confirmed on messages sent long after the MCP connection had been stable (10+ minutes post-reconnect, ruling out a reconnect-race). - Despite the notification resolving OK on the plugin/server side, no
<channel source="telegram" ...>message ever appeared as a new turn in the Claude Code session.
Expected behavior
A notifications/claude/channel MCP notification that resolves successfully should surface as a visible inbound message in the session, per the documented behavior in the plugin's MCP server instructions ("Messages from Telegram arrive as <channel source=\"telegram\" ...>").
Actual behavior
The notification is accepted by the transport (write succeeds, promise resolves) but is not rendered/injected into the session as a turn. Outbound tools (reply, react, etc.) work fine in both directions — this appears isolated to inbound notification → session-turn delivery.
Reproduction notes
- Repeatedly reproduced across multiple fresh session restarts (
claude --resume <session-id>), ruling out a one-off race on a specific connection. - Reverted the debug logging after diagnosis; happy to provide the instrumented diff if useful for repro.
Environment
- Linux (Fedora), Claude Code CLI,
claude-plugins-official/telegramv0.0.6