Marketplace auto-update silently breaks --channels telegram plugin
Resolved 💬 4 comments Opened Mar 31, 2026 by HAL-XP Closed Apr 12, 2026
Description
Claude Code's marketplace auto-update mechanism can silently break the --channels telegram plugin mid-conversation, with no error, no log, and no recovery mechanism.
Steps to Reproduce
- Run Claude Code with
--channels plugin:telegram@claude-plugins-official - Session works fine, telegram plugin (bun.exe) is spawned as child process
- Wait for marketplace auto-update to trigger (downloads new version to
.stagingdir) - Observe:
external_plugins/telegram/in production marketplace gets wiped - Production marketplace loses
.claude-plugin/directory (manifest) and all plugin source files - The
.stagingdir has the complete new version but the swap to production never completes - Session goes silent — telegram plugin process dies and cannot be restarted
Observed Behavior
- After the marketplace update, the production dir (
~/.claude/plugins/marketplaces/claude-plugins-official/) loses its.claude-plugin/marketplace.jsonmanifest - Without the manifest, every Claude startup cleans the
external_plugins/telegram/directory (reconciliation against missing manifest) --channelsflag still shows "Listening for channel messages from: plugin:telegram@claude-plugins-official" banner at startup — but the bun.exe plugin process never spawns- No error message in the UI, no child process, no log output
- Manually restoring files is futile — Claude cleans them on next startup (until manifest is also restored)
- The staging dir (
claude-plugins-official.staging/) has all correct files including.claude-plugin/plugin.json, but the promotion to production never happens
Expected Behavior
- Atomic marketplace swap: staging → production should be atomic (rename, not file-by-file copy)
- Plugin health check:
--channelsshould verify the plugin process actually started and surface errors if not - Fallback to cache: if production plugin is missing, fall back to cached version (which exists at
cache/claude-plugins-official/telegram/) - Visible error: "Listening for channel messages" banner should show error state if plugin fails to spawn
- Auto-recovery: if production is corrupt, auto-promote staging
Workaround
Manually copy from staging to production:
cp -r .../claude-plugins-official.staging/external_plugins/telegram/.claude-plugin .../claude-plugins-official/external_plugins/telegram/
cp .../claude-plugins-official.staging/external_plugins/telegram/.mcp.json .../claude-plugins-official/external_plugins/telegram/
cp .../claude-plugins-official.staging/external_plugins/telegram/.npmrc .../claude-plugins-official/external_plugins/telegram/
# + all source files, then bun install
# ALSO copy .claude-plugin/ dir to marketplace root to prevent re-wipe:
cp -r .../claude-plugins-official.staging/.claude-plugin .../claude-plugins-official/
Environment
- Claude Code v2.1.87
- Windows 11 Pro
- Plugin: telegram@claude-plugins-official v0.0.4
- Marketplace: claude-plugins-official
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗