Telegram plugin: inbound notifications/claude/channel not delivered to session (v2.1.89, macOS)

Resolved 💬 2 comments Opened Apr 1, 2026 by cseini Closed May 7, 2026

Bug Description

Telegram plugin's inbound MCP channel notifications (notifications/claude/channel) are not delivered to the Claude Code session. The bot receives messages and processes them successfully, but they never appear in the conversation.

Environment

  • Claude Code version: 2.1.89
  • OS: macOS (Darwin 25.4.0, arm64)
  • Runtime: Bun
  • Plugin: claude-plugins-official/telegram v0.0.4
  • MCP SDK: @modelcontextprotocol/sdk ^1.0.0

What works

  • Bot polls Telegram successfully (confirmed via 409 Conflict on manual getUpdates)
  • gate() passes — typing indicator shows in Telegram
  • mcp.notification() resolves successfully (no error)
  • Outbound reply tool works perfectly — bot sends messages to Telegram without issue
  • MCP stdio transport is functional for tool calls (request/response)

What doesn't work

  • Inbound messages from Telegram never appear in the Claude Code conversation
  • mcp.notification({ method: 'notifications/claude/channel', ... }) completes with no error but the client does not surface the message

Debug evidence

Added file-based debug logging to server.ts. After sending a message from Telegram:

[2026-04-01T05:21:52.783Z] handleInbound: gate passed, chat_id=7207774160, user=7207774160, text=333
[2026-04-01T05:21:52.783Z] mcp.notification called: {"method":"notifications/claude/channel","params":{"content":"333","meta":{"chat_id":"7207774160","message_id":"48","user":"7207774160","user_id":"7207774160","ts":"2026-04-01T05:21:52.000Z"}}}
[2026-04-01T05:21:52.784Z] mcp.notification SUCCESS

The server-side notification succeeds, but the Claude Code client silently drops it.

Steps to reproduce

  1. Configure Telegram plugin with bot token and allowlist
  2. Start Claude Code session
  3. Send a message to the bot from Telegram
  4. Observe: typing indicator appears in Telegram, but message never arrives in Claude Code
  5. Use the reply tool to send a message back — this works fine

What I've tried

  • Restarting Claude Code multiple times
  • Killing orphaned bot processes and restarting
  • /reload-plugins
  • claude --update (already latest)
  • Verified access.json has correct allowFrom with sender's user ID

Related issues

  • #36429, #36431, #36472, #36802, #37498, #37633, #37933, #38259

View original on GitHub ↗

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