Telegram/Discord plugin: inbound messages never delivered to session (zombie bun server.ts after restart)
Environment
- Claude Code Desktop, macOS Darwin 25.2.0 (Apple Silicon)
- telegram@claude-plugins-official v0.0.6
- discord@claude-plugins-official v0.0.4
Bug 1: Zombie bun server.ts processes after restart
After Claude Code restarts, old server.ts plugin processes survive as orphans, causing 409 Conflict — the new instance cannot poll Telegram/Discord.
ps aux shows multiple competing instances after each restart. The plugin's own source comments acknowledge this risk but the exit logic doesn't reliably clean up.
Workaround: pkill -f "bun server.ts" — Claude Code then restarts clean instances.
Bug 2: Inbound messages not routed to any session
Even with clean processes, inbound messages are never delivered to any Claude Code session. The cse_ session stays in "waiting for user message via transport" indefinitely. No log entries appear in ~/Library/Logs/Claude/main.log when a Telegram/Discord message is sent.
Outbound (Claude → Telegram via reply tool) works correctly.
Reproduction steps
- Configure telegram/discord plugin with bot token + allowlist
- Send DM to bot → typing indicator appears
- No reply is sent
- Restart Claude Code → multiple zombie
bun server.tsprocesses appear - Kill zombies → fresh processes start → typing still appears → still no reply
Relevant log entries (~/Library/Logs/Claude/main.log)
[sessions-bridge] Session cse_... reconnected successfully
[transport:sdk] attaching SDK bridge (apiBaseUrl=https://api.anthropic.com)
[sessions-bridge] waiting for user message via transport
No further entries appear when a Telegram/Discord message is sent to the bot.
Additional context
- Rate limit errors observed during testing:
api_error: You've hit your limit No active account/org for marketplace operationson every startup (custom ANTHROPIC_BASE_URL configured)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗