Telegram channel plugin: MCP connection silently drops, zombie processes pile up

Resolved 💬 4 comments Opened Apr 9, 2026 by gueysito Closed May 28, 2026

Summary

The Telegram channel plugin (plugin:telegram:telegram) has two critical issues that make it unusable in practice:

  1. Zombie process pile-up: Every Claude Code session (terminal or VS Code) auto-spawns a Telegram plugin process. When sessions end, these processes are never cleaned up. They accumulate and compete for the same bot token via Telegram's long-polling API, causing message delivery to randomly route to dead sessions.
  1. MCP connection silently drops: Even after killing all zombie processes and isolating a single instance, the MCP pipe between the plugin and Claude Code disconnects silently. The plugin process stays alive (still polling Telegram), receives messages, sends the "typing" indicator to the user, but the mcp.notification() call fails because the pipe is dead. The user sees "typing..." forever with no response. No error is surfaced.

Steps to Reproduce

  1. Open multiple Claude Code sessions over a few days (terminal + VS Code)
  2. Observe ps aux | grep telegram — multiple bun run processes accumulate, one per session
  3. Send a DM to the bot — "typing" indicator appears but no reply ever comes
  4. Kill all zombie processes except the current session's
  5. Send another DM — MCP pipe has already disconnected, same result

Expected Behavior

  • Plugin processes should be cleaned up when their parent session ends
  • Only one instance should poll per bot token at any time
  • If the MCP connection drops, the plugin should either reconnect or exit so the user gets a clear signal

Environment

  • macOS Darwin 25.4.0 (M4 Mini)
  • Claude Code CLI + VS Code extension
  • Plugin version: 0.0.4
  • Multiple terminal sessions + VS Code running concurrently

Outcome

I ended up fully removing the plugin because it caused more problems than the benefit it provides. The auto-start behavior with no cleanup, combined with silent MCP disconnections, made it completely unreliable.

---

Filed via Claude Code

View original on GitHub ↗

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