Native auto-updater leaves 0-byte version files when blocked by running process
Resolved 💬 6 comments Opened Dec 19, 2025 by xerebz Closed Feb 14, 2026
Description
When running claude update while a Claude session is active, the updater creates a 0-byte placeholder file in ~/.local/share/claude/versions/ but fails to download the binary because "Another Claude process is currently running". The placeholder file is not cleaned up, which may interfere with future auto-updates.
Steps to Reproduce
- Start a Claude Code session
- From within the session, run
claude update(via Bash tool or another terminal) - Observe the error: "Another Claude process is currently running"
- Check
~/.local/share/claude/versions/- a 0-byte file exists for the target version
Expected Behavior
Either:
- The updater should not create the placeholder file until after confirming no other process is running
- Or the updater should clean up the 0-byte file when it aborts due to another process running
Actual Behavior
- 0-byte file is created in versions directory
- Download is aborted due to running process check
- 0-byte file persists, potentially blocking future updates
Workaround
Exit Claude completely, then either:
- Run
claude updatefrom outside Claude - Manually delete the 0-byte file:
rm ~/.local/share/claude/versions/<version> - Or manually download:
curl -fsSL -o ~/.local/share/claude/versions/<version> \
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/<version>/darwin-arm64/claude"
chmod +x ~/.local/share/claude/versions/<version>
ln -sf ~/.local/share/claude/versions/<version> ~/.local/bin/claude
Environment
- Version: 2.0.73 attempting to update to 2.0.74
- Platform: darwin-arm64 (macOS)
- Install method: Native installer (curl install script)
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗