Channels: only first message delivered, subsequent messages silently dropped

Resolved 💬 3 comments Opened Mar 25, 2026 by MysticOptimist Closed Mar 28, 2026

Description

When using --channels plugin:telegram@claude-plugins-official, only the first inbound Telegram message is delivered to the Claude Code session. All subsequent messages are silently dropped — they never appear in the session even though the MCP plugin is receiving them from Telegram.

Steps to Reproduce

  1. Install and configure Telegram plugin per docs
  2. Launch: claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
  3. Send a message to the bot from Telegram → Works, Claude receives and replies
  4. Send a second message → Never arrives. Session sits idle at prompt.

Environment

  • Claude Code v2.1.83 (latest)
  • macOS 15 (Darwin 25.3.0), Apple Silicon (M4)
  • Bun 1.3.11
  • Telegram plugin 0.0.4 from claude-plugins-official

Debugging Done

  • Confirmed via Telegram Bot API (getUpdates) that the plugin IS consuming messages (0 pending)
  • Confirmed only ONE bun server.ts process running (no 409 conflicts)
  • Confirmed access.json has correct allowlist with sender ID
  • Confirmed session shows "Remote Control active" and is idle at prompt
  • Tested both in tmux and in a foreground TTY terminal — same behavior
  • The mcp.notification({ method: 'notifications/claude/channel' }) call in the plugin appears to execute without error, but the notification doesn't reach the Claude Code session after the first turn

Expected Behavior

Channel messages should continue to be delivered to the session as long as it's open, as documented: "Events only arrive while the session is open, so for an always-on setup you run Claude in a background process or persistent terminal."

Workaround

Currently using direct Telegram Bot API calls (curl to sendMessage) from shell scripts for outbound notifications, bypassing the channel entirely.

View original on GitHub ↗

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