claude-code - 💡(How to fix) Fix [Bug] Bulk `claude plugin marketplace update` leaves orphan child processes alive for 10+ minutes

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Running claude plugin marketplace update (the bulk form, no marketplace-name argument) spawns helper child processes for parallel marketplace fetches. When the user-visible CLI completes (prints "✔ Successfully updated N marketplace(s)" and returns), those helper processes are NOT cleaned up — they survive as orphans (PPID=1, reparented to init) for 10–25+ minutes before exiting on their own. In a long-running session that triggers the bulk command on a recurring schedule, orphans accumulate.

Root Cause

Running claude plugin marketplace update (the bulk form, no marketplace-name argument) spawns helper child processes for parallel marketplace fetches. When the user-visible CLI completes (prints "✔ Successfully updated N marketplace(s)" and returns), those helper processes are NOT cleaned up — they survive as orphans (PPID=1, reparented to init) for 10–25+ minutes before exiting on their own. In a long-running session that triggers the bulk command on a recurring schedule, orphans accumulate.

RAW_BUFFERClick to expand / collapse

Bug Description Bulk claude plugin marketplace update leaves orphan child processes alive for 10+ minutes after completion

Summary

Running claude plugin marketplace update (the bulk form, no marketplace-name argument) spawns helper child processes for parallel marketplace fetches. When the user-visible CLI completes (prints "✔ Successfully updated N marketplace(s)" and returns), those helper processes are NOT cleaned up — they survive as orphans (PPID=1, reparented to init) for 10–25+ minutes before exiting on their own. In a long-running session that triggers the bulk command on a recurring schedule, orphans accumulate.

Reproduce

  1. Install Claude Code 2.1.142.
  2. Have many marketplaces installed (mine: 276; behavior likely manifests with fewer).
  3. From a shell, run claude plugin marketplace update.
  4. Wait for the CLI to print "✔ Successfully updated N marketplace(s)" and return to the shell.
  5. In another shell, run ps -eo pid,ppid,etime,args | grep "[c]laude plugin marketplace update".
  6. Observe several orphan processes (PPID=1) with the exact cmdline claude plugin marketplace update, alive for 10–25+ minutes after the bulk command "completed".

Observed

After ~25 minutes of running the bulk command at 5-min intervals on macOS / 2.1.142 with 276 marketplaces:

PID PPID ELAPSED ARGS 25021 1 22:14 claude plugin marketplace update 27413 1 01:28 claude plugin marketplace update 28138 1 11:39 claude plugin marketplace update 52829 1 19:39 claude plugin marketplace update 60081 1 19:07 claude plugin marketplace update

All have PPID=1 (original spawner died), all have no marketplace-name argument (so they're not per-marketplace child invocations), and they idle for many minutes.

Expected

After claude plugin marketplace update exits with success, the helper subprocesses it spawned for parallel marketplace fetches should be reaped/joined before the CLI returns. Alternatively, they should not survive past their parent.

Environment

  • Claude Code: 2.1.142
  • OS: macOS Darwin 24.6.0 (Apple Silicon)
  • Marketplaces installed: 276
  • Trigger context: a recurring CronCreate-armed heartbeat in my ai-maestro-janitor plugin runs the bulk command every 5 minutes via a tracked, serialized worker (only ONE process per cron fire originates from my plugin — the rest are internal helpers spawned by the CLI itself).

Impact

  • Low severity: each orphan is idle (no CPU), uses small memory. But they easily compound when updates are regular.
  • Aliasing: any tool tracking "is a bulk marketplace update running?" via ps scan gets false positives from orphans.
  • In a multi-day session with recurring bulk-refresh, orphan count grows then plateaus around the duration helpers stay alive (~25 min in my observation).

Environment Info

  • Platform: darwin
  • Terminal: iTerm.app
  • Version: 2.1.142
  • Feedback ID: cad9ab75-ef79-4bdb-8eb9-c88fc1d82aa2

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [Bug] Bulk `claude plugin marketplace update` leaves orphan child processes alive for 10+ minutes