[BUG]
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 channel plugin successfully receives inbound messages (gate passes, typing indicator appears,
mcp.notification() resolves without error), but the notifications/claude/channel JSON-RPC notification sent over stdio
is never surfaced in the Claude Code session. Outbound messages via the reply tool work fine — only inbound
notifications are broken.
What Should Happen?
When a Telegram user sends a DM to the bot, the message should appear in the active Claude Code session as a <channel
source="telegram" ...> message, allowing Claude to read and respond to it — the same way iMessage channel inbound
works.
Error Messages/Logs
No error messages — that's the problem. Added debug logging to the plugin's handleInbound() at the mcp.notification()
call site. The notification payload is well-formed and the promise resolves successfully (no rejection). The plugin's
built-in .catch() handler ("failed to deliver inbound to Claude") never fires. There are no errors in stderr either.
The notification silently succeeds from the plugin's perspective but Claude Code never acts on it.
# Debug log from plugin (added manually):
telegram channel DEBUG: sending notification:
{"method":"notifications/claude/channel","params":{"content":"Test","meta":{"chat_id":"8462994565","message_id":"33","
user":"8462994565","user_id":"8462994565","ts":"2026-03-25T02:34:47.000Z"}}}
telegram channel DEBUG: notification sent OK
Steps to Reproduce
- Configure Telegram channel: set bot token in ~/.claude/channels/telegram/.env, add user ID to allowlist in
access.json with dmPolicy: "allowlist"
- Start a Claude Code session (v2.1.81) — confirm plugin loads (/reload-plugins shows telegram MCP server)
- Confirm outbound works: use the reply tool to send a message to the allowlisted chat_id — message arrives in
Telegram
- Send a DM to the bot from the allowlisted Telegram account
- Observe: typing indicator appears in Telegram (gate passed), but no <channel source="telegram"> message surfaces in
the Claude Code session
- No error is logged by the plugin — mcp.notification() resolves successfully
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.81
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗