Channel plugin MCP (plugin:telegram) fails to spawn at session start after official-marketplace refresh; /mcp Reconnect fixes it
Summary
After the official plugin marketplace (claude-plugins-official) refreshes on disk, the channel plugin MCP server (plugin:telegram:telegram) fails to spawn at session start — or takes minutes to come up. A manual /mcp → select server → Reconnect revives it instantly every time. Observed twice in one day, each occurrence starting immediately after a marketplace refresh.
Environment
- macOS (Apple Silicon), Claude Code 2.1.212 and 2.1.214 (native install,
~/.local/share/claude/versions/…) - Plugin:
telegram@claude-plugins-official0.0.6 (bun-based channel plugin) - Sessions started headless in tmux with
--channels plugin:telegram@claude-plugins-official
Symptom
- Session boots normally, banner shows "Channels (experimental) messages from plugin:telegram@claude-plugins-official inject directly in this session".
- The plugin MCP process (
bun run --cwd <plugin> … start) is never spawned — no child process, and notably no per-session log file is created under~/Library/Caches/claude-cli-nodejs/<project>/mcp-logs-plugin-telegram-telegram/(normally a file appears with "Starting connection…"). The failure appears to happen before the connection attempt is logged. /mcpshowsplugin:telegram:telegram · ✘ failed.- Model-independent (reproduced with two different
--modelvalues) and version-independent (reproduced on both 2.1.212 and 2.1.214).
Correlation
Two occurrences, both starting immediately after the marketplace metadata on disk changed:
- First occurrence began ~17:04Z 2026-07-17; a refresh of
claude-plugins-officiallanded 17:04:48Z. Sessions started 16:17–16:21Z the same morning connected fine ("Successfully connected in 195ms") on the same binary. - Second occurrence began ~01:26Z 2026-07-18, right after
~/.claude/plugins/marketplaces/claude-plugins-officialwas (re-)cloned at 01:26Z (officialMarketplaceAutoInstalledflipped true; the telegram plugin now lives underexternal_plugins/in the new snapshot, still version 0.0.6,.mcp.jsonunchanged). The still-running sessions from before the refresh kept working; every session started after it came up with the failed plugin MCP.
Workarounds found
/mcp→ select the failed server → Reconnect: works instantly, every time.- Waiting also (sometimes) works: one session spawned the plugin ~3 minutes after boot.
- Restarting the CLI session does not help — fresh sessions come up in the same failed state, which is nasty for unattended/headless bots whose supervision reacts to a dead channel by restarting the session.
Impact
Headless channel-plugin sessions (Telegram bots) come up deaf after any marketplace refresh, and restart-based supervision makes it worse. A retry of the initial plugin MCP spawn (the same code path Reconnect uses) would fix it.
Aside
While debugging we also noticed the freshly installed 2.1.214 binary re-points the ~/.local/bin/claude symlink to itself when an older pinned version is launched — intentional self-repair presumably, but it makes version-pinning via the symlink impossible; mentioning in case it's not intended.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗