[BUG] Channel plugins (Telegram/iMessage) disconnect on .claude.json hot-reload in multi-session setups

Resolved 💬 3 comments Opened Apr 16, 2026 by franckrocca Closed May 25, 2026

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?

Channel plugins loaded via --channels disconnect every time ~/.claude.json is modified. Regular MCP servers survive the hot-reload, but channel plugins don't reconnect automatically.

Impact: With 8+ concurrent CC sessions (common for power users using Telegram as mobile interface), .claude.json is updated frequently (session metrics: lastCost, lastSessionMetrics, etc.). This causes channel plugins to disconnect every ~10 minutes across ALL sessions simultaneously.

What Should Happen?

Expected: Channel plugins should survive .claude.json hot-reload (like regular MCP servers do), OR .claude.json metric writes should not trigger hot-reload.

Error Messages/Logs

Steps to Reproduce

  1. Start 2+ CC sessions with --channels plugin:telegram@claude-plugins-official
  2. Both sessions share ~/.claude.json
  3. Session A completes a turn → CC writes metrics to .claude.json
  4. Session B's Telegram plugin disconnects silently
  5. /mcp or /reload-plugins reconnects it, but next .claude.json write kills it again

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.110

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Workaround: fswatch daemon that detects changes and injects /mcp via tmux — unreliable when session is busy processing.
Environment: CC v2.1.110, macOS 15.4, M4, plugin telegram v0.0.6
Related: #36308 (MCP auto-reconnect), #36802 (Telegram notifications not delivered)

View original on GitHub ↗

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