MCP channel notifications intermittently dropped

Resolved 💬 3 comments Opened Mar 29, 2026 by eleanorkonik Closed Mar 29, 2026

Summary

MCP channel notifications from the Telegram plugin are intermittently dropped — the bot receives messages from Telegram and calls mcp.notification({ method: 'notifications/claude/channel', ... }), but Claude Code doesn't surface them to the conversation.

Reproduction

  1. Set up Telegram channel plugin (claude --channels plugin:telegram@claude-plugins-official)
  2. Pair a Telegram user via /telegram:access pair <code>
  3. Send multiple messages from Telegram in sequence

Observed behavior

  • Some messages arrive in Claude Code, others are silently dropped
  • No pattern tied to message content (plain text like "Um", "Clear", "How? it didn't work" all dropped)
  • Outbound replies (tool calls to reply) work 100% of the time
  • The bot process is healthy — TCP connections to Telegram are ESTABLISHED, bot.catch error handler is not firing
  • The mcp.notification() call has a .catch() handler that logs to stderr — no errors observed
  • Drops happen regardless of whether Claude Code is mid-generation or idle at the prompt
  • Messages sometimes come through in bursts (6 consecutive successes), then suddenly stop (3+ consecutive drops)

Environment

  • macOS Darwin 25.3.0 (aarch64)
  • Claude Code via claude --channels plugin:telegram@claude-plugins-official
  • Telegram plugin from claude-plugins-official
  • Bot framework: Grammy (long-polling, default settings)
  • Runtime: Bun

Diagnosis

  • Confirmed the bot is not in static mode (re-reads access.json each message)
  • Confirmed no duplicate bot processes competing for getUpdates (an earlier zombie was present but exited before the test sequence)
  • Confirmed gate() returns deliver for the allowlisted sender
  • Confirmed handleInbound() reaches the mcp.notification() call (outbound ack reactions fire)
  • The drop appears to be on the Claude Code side — the MCP notification is sent over stdio but not surfaced

Expected behavior

All notifications/claude/channel notifications from the MCP server should be surfaced to the conversation.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗