Telegram plugin notifications/claude/channel delivered successfully but never surfaced in session

Resolved 💬 3 comments Opened Apr 15, 2026 by INV2025 Closed Apr 19, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The Telegram plugin (v0.0.5) receives messages and delivers them via mcp.notification({ method: 'notifications/claude/channel' }) successfully, but Claude Code's session never renders them as <channel source="telegram"> tags. The session sits idle with no indication a message arrived.

Environment: Claude Code 2.1.109, Windows 11, Bun 1.3.11, Plugin claude-plugins-official/telegram/0.0.5

Debugging done:

  • Bot token validated via getMe API call — valid and active
  • No webhook set (polling mode confirmed via getWebhookInfo)
  • Plugin runs correctly standalone (bun run server.ts outputs full JSON for received messages)
  • Killing stale bun.exe processes and reloading plugins did not help
  • Fresh session after kill + reload did not help
  • /reload-plugins does not restart the bun process (PIDs unchanged) — had to manually taskkill and reload
  • Added file-based logging to the .catch() and .then() of mcp.notification() in server.ts — delivery succeeds every time, error log never created
  • claude --debug shows zero output when messages arrive

The break is between the MCP notification delivery (which succeeds) and Claude Code's internal session handler that should render notifications as <channel> tags.

What Should Happen?

When the Telegram plugin delivers a notifications/claude/channel MCP notification, the message should appear in the active Claude Code session as a <channel source="telegram"> tag, and Claude should be able to read and respond to it.

Error Messages/Logs

Steps to Reproduce

  1. Configure Telegram plugin via /telegram:configure with valid bot token
  2. Pair and allowlist a user via /telegram:access
  3. Confirm all MCP servers connected via claude mcp list
  4. Give Claude a prompt to monitor Telegram messages
  5. Send a DM to the bot from the allowlisted Telegram account
  6. Observe: typing indicator fires in Telegram, but no <channel> tag appears in session and Claude reports no messages received

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.109

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

_No response_

View original on GitHub ↗

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