Telegram channel plugin: inbound messages not delivered to session
Resolved 💬 3 comments Opened Mar 24, 2026 by gouveiadavid Closed Mar 28, 2026
Description
Outbound messages (reply tool) work perfectly — messages sent from Claude Code arrive in Telegram. However, inbound messages from Telegram are never delivered to the Claude Code session.
Environment
- Claude Code: v2.1.80
- Plugin: telegram@claude-plugins-official v0.0.1
- OS: macOS (Darwin 25.3.0)
- Bot framework: grammy v1.21.0
Setup
access.jsoncorrectly configured:dmPolicy: "allowlist", user ID inallowFrom- Bot token valid and working
- Session started with
claude --channels plugin:telegram@claude-plugins-official
What works
- Bot connects and starts polling (
bot.start()succeeds, logspolling as @botname) - Pairing flow works — initial pairing message was received and approved
- Outbound:
replytool sends messages to Telegram successfully - Bot receives inbound messages (confirmed by ack reactions and typing indicators firing)
What does not work
- Inbound: Messages sent from Telegram to the bot never appear in the Claude Code session
- The
mcp.notification({ method: "notifications/claude/channel", ... })call inhandleInbound()(server.ts:580) executes without error but the notification is not delivered to the Claude session - Tested repeatedly with text messages — none arrived
Steps to reproduce
- Install telegram plugin, configure bot token and pair a user
- Start session:
claude --channels plugin:telegram@claude-plugins-official - Send a message from Claude Code to Telegram using the reply tool (works)
- Send a message from Telegram to Claude Code (never arrives)
Expected behavior
Messages sent from an allowlisted Telegram user should appear in the Claude Code session as <channel source="telegram" ...> blocks.
Actual behavior
Messages are silently dropped between the MCP notification and the Claude Code session. The bot processes them (gate passes, ack fires) but the session never receives them.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗