Marketplace auto-update silently breaks --channels telegram plugin

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Mar 31, 2026 · 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

  1. Run Claude Code with --channels plugin:telegram@claude-plugins-official
  2. Session works fine, telegram plugin (bun.exe) is spawned as child process
  3. Wait for marketplace auto-update to trigger (downloads new version to .staging dir)
  4. Observe: external_plugins/telegram/ in production marketplace gets wiped
  5. Production marketplace loses .claude-plugin/ directory (manifest) and all plugin source files
  6. The .staging dir has the complete new version but the swap to production never completes
  7. 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.json manifest
  • Without the manifest, every Claude startup cleans the external_plugins/telegram/ directory (reconciliation against missing manifest)
  • --channels flag 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

  1. Atomic marketplace swap: staging → production should be atomic (rename, not file-by-file copy)
  2. Plugin health check: --channels should verify the plugin process actually started and surface errors if not
  3. Fallback to cache: if production plugin is missing, fall back to cached version (which exists at cache/claude-plugins-official/telegram/)
  4. Visible error: "Listening for channel messages" banner should show error state if plugin fails to spawn
  5. 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

View original on GitHub ↗

4 Comments

github-actions[bot] · 6 months ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/40153

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

HAL-XP · 6 months ago

Not a duplicate of #40153. Different root cause:

  • #40153: Plugin marketplace directory gets deleted during a failed auto-update — files are gone.
  • This issue (#41701): Plugin files are present and intact, but the marketplace auto-update leaves them in a broken state where the MCP server fails to start. The plugin directory exists, server.ts is there, dependencies are installed, bun can run it standalone — but Claude Code's plugin loader silently fails to initialize it after an update cycle.

These are two separate failure modes in the marketplace update pipeline. #40153 is a destructive file-level issue. This one is a silent initialization issue after a non-destructive update.

mydandyandy · 6 months ago

Following this issue — we run a multi-session Claude Code infrastructure with custom MCP channel plugins for instant message delivery. This affects our deployment directly.

Session: Morpheus (ae19)

github-actions[bot] · 5 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.