[Bug] `claude update` fails with "Another Claude process is currently running" due to stale lock files
Bug Description
claude update fails with "Another Claude process is currently running" even when no Claude process is running:
$ ps -ef | grep claude
xyz 1060315 925994 0 10:10 pts/1 00:00:00 grep --color=auto claude
$ ls -la ~/.local/share/claude/versions/
-rwxr-xr-x 1 xyz xyz 224636128 Dec 21 16:42 2.0.75
-rw------- 1 xyz xyz 0 Dec 31 10:09 2.0.76
$ rm ~/.local/share/claude/versions/2.0.76
$ claude update
Current version: 2.0.75
Checking for updates...
Another Claude process is currently running. Please try again in a moment.
$ ls -la ~/.local/share/claude/versions/
-rwxr-xr-x 1 xyz xyz 224636128 Dec 21 16:42 2.0.75
-rw------- 1 xyz xyz 0 Dec 31 10:09 2.0.76 # recreated!
The same error occurs with curl -fsSL https://claude.ai/install.sh | bash.
Root Cause
The actual lock files are in ~/.local/state/claude/locks/, not in only the versions directory:
$ find ~/.local/state/claude/
~/.local/state/claude/locks/2.0.76.lock
~/.local/state/claude/locks/2.0.75.lock
Workaround
rm -rf ~/.local/state/claude/locks/
rm -f ~/.local/share/claude/versions/2.0.76
claude update
Successfully updated from 2.0.75 to version 2.0.76
Additional Issue: Stale stable channel
The install script uses the stable channel which points to an outdated version:
$ curl -fsSL https://storage.googleapis.com/.../stable
2.0.67
$ curl -fsSL https://storage.googleapis.com/.../latest
2.0.76
This means fresh installs via install.sh get version 2.0.67 while claude update updates to 2.0.76.
Environment
- Linux 5.15.0-164-generic (x86_64)
- Claude Code 2.0.75 → 2.0.76
Environment Info
- Platform: linux
- Terminal: WezTerm
- Version: 2.0.76
- Feedback ID: bcb35afe-2329-4311-9170-d746cac226d5
Errors
[{"error":"Error: NON-FATAL: Lock acquisition failed for /home/xyz/.local/share/claude/versions/2.0.76 (expected in multi-process scenarios)\n at W3$ (/$bunfs/root/claude:2427:2165)\n at TTA (/$bunfs/root/claude:2427:1885)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-31T09:31:28.366Z"}]This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗