Installation fails with 'another process is currently installing' even when no other process exists

Status Fixed / completed
Reported on v2.0.76
Maintainer reply None cached
Activity 7 comments · opened Dec 29, 2025 · closed Jan 7, 2026

Bug Description

The installation script intermittently fails with the error:

"Could not install - another process is currently installing Claude. Please try again in a moment."

This happens even when no other installation process is running.

Steps to Reproduce

  1. Run curl -fsSL https://claude.ai/install.sh | bash -s 2.0.76 - fails
  2. Run the same command again - same failure
  3. Run curl -fsSL https://claude.ai/install.sh | bash -s 2.0.74 - fails
  4. Run with stable tag - succeeds (installs 2.0.67)
  5. Run with latest tag - succeeds (installs 2.0.76)
  6. Run with specific version 2.0.76 again - fails again

The behavior is inconsistent: specific version numbers fail, but stable/latest tags work.

Environment

  • OS: macOS (Darwin 25.2.0)
  • Architecture: Apple Silicon (darwin)
  • Shell: zsh
  • Current installed version: 2.0.76

Terminal Logs

$ curl -fsSL https://claude.ai/install.sh | bash -s 2.0.76
Setting up Claude Code...

✘ Installation failed

Could not install - another process is currently installing Claude. Please try again in a moment.

Try running with --force to override checks

$ curl -fsSL https://claude.ai/install.sh | bash -s stable
Setting up Claude Code...

✔ Claude Code successfully installed!
  Version: 2.0.67

$ curl -fsSL https://claude.ai/install.sh | bash -s latest
Setting up Claude Code...

✔ Claude Code successfully installed!
  Version: 2.0.76

$ curl -fsSL https://claude.ai/install.sh | bash -s 2.0.76
Setting up Claude Code...

✘ Installation failed

Could not install - another process is currently installing Claude. Please try again in a moment.

Expected Behavior

  1. Installation with specific version numbers should work consistently
  2. If a stale lock exists, provide a way to clear it automatically or show the lock file location

Possible Cause

The lock mechanism may be creating a stale lock file when installing specific versions, but not when using stable/latest tags. The lock file might not be properly cleaned up.

View original on GitHub ↗

7 Comments

github-actions[bot] · 9 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/15622
  2. https://github.com/anthropics/claude-code/issues/14301
  3. https://github.com/anthropics/claude-code/issues/13705

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

ltoshea · 9 months ago

To add support to this bug I found the exact same problem install on Ubuntu via WSL2. Even after nuking everywhere I thought a lock file might exist.:

pkill -9 claude  
sudo rm -rf ~/.local/bin/claude  
sudo rm -rf ~/.local/share/claude*  
sudo rm -rf ~/.cache/claude*  
sudo rm -rf /tmp/*claude*  
sudo rm -rf /var/tmp/*claude* 

Using the --force option didn't fix it, nor did manually download the installers.

paveg · 9 months ago

I faced the same issue, and tried the above commands. But finally I can't install binary with native build.

❯ curl -fsSL https://claude.ai/install.sh | bash -s latest
Setting up Claude Code...

✘ Installation failed

Could not install - another process is currently installing Claude. Please try again in a moment.


Try running with --force to override checks
~ 󰔟 32s
❯ which claude
claude not found

Isn't there any workarounds other than homebrew and installation via npm package?

---

after executing rm -rf ~/.local/state/claude/locks, the command is succeeded.

LunarLollipop · 9 months ago

Same issue.

``2026-01-06T15:15:22.039Z [ERROR] Failed to save config with lock: Error: ENOENT: no such file or directory, lstat '/home/lunar/.claude.json'
2026-01-06T15:15:22.039Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522039
2026-01-06T15:15:22.039Z [DEBUG] Setting permissions for new file: 600
2026-01-06T15:15:22.054Z [DEBUG] [SLOW OPERATION DETECTED] fs.writeFileSync (14.9ms)
2026-01-06T15:15:22.054Z [DEBUG] Temp file written successfully, size: 82 bytes
2026-01-06T15:15:22.054Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522039 to /home/lunar/.claude.json
2026-01-06T15:15:22.054Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.058Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522058
2026-01-06T15:15:22.058Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.058Z [DEBUG] Temp file written successfully, size: 130 bytes
2026-01-06T15:15:22.058Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.058Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522058 to /home/lunar/.claude.json
2026-01-06T15:15:22.058Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.061Z [DEBUG] [LSP MANAGER] initializeLspServerManager() called
2026-01-06T15:15:22.061Z [DEBUG] [LSP MANAGER] Created manager instance, state=pending
2026-01-06T15:15:22.061Z [DEBUG] [LSP MANAGER] Starting async initialization (generation 1)
2026-01-06T15:15:22.062Z [DEBUG] [LSP SERVER MANAGER] initialize() called
2026-01-06T15:15:22.062Z [DEBUG] [LSP SERVER MANAGER] Calling getAllLspServers()
2026-01-06T15:15:22.062Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522062
2026-01-06T15:15:22.062Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.062Z [DEBUG] Temp file written successfully, size: 167 bytes
2026-01-06T15:15:22.062Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.062Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522062 to /home/lunar/.claude.json
2026-01-06T15:15:22.062Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.063Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522063
2026-01-06T15:15:22.063Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.063Z [DEBUG] Temp file written successfully, size: 202 bytes
2026-01-06T15:15:22.063Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.063Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522063 to /home/lunar/.claude.json
2026-01-06T15:15:22.063Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.064Z [DEBUG] Found 0 plugins (0 enabled, 0 disabled)
2026-01-06T15:15:22.071Z [DEBUG] Loading skills from directories: managed=/etc/claude-code/.claude/skills, user=/home/lunar/.claude/skills, project=[]
2026-01-06T15:15:22.071Z [DEBUG] >>>>> getPluginSkills CALLED <<<<<
2026-01-06T15:15:22.083Z [DEBUG] [SLOW OPERATION DETECTED] execSyncWithDefaults (10.8ms): ps aux | grep -E "code|cursor|windsurf|idea|pycharm|webstorm|phpstorm|rubymine|clion|goland|rider|da
2026-01-06T15:15:22.083Z [DEBUG] installed_plugins.json doesn't exist, returning empty V2 object
2026-01-06T15:15:22.086Z [DEBUG] Creating shell snapshot for bash (/usr/bin/bash)
2026-01-06T15:15:22.086Z [DEBUG] Looking for shell config file: /home/lunar/.bashrc
2026-01-06T15:15:22.086Z [DEBUG] Snapshots directory: /home/lunar/.claude/shell-snapshots
2026-01-06T15:15:22.087Z [DEBUG] Creating snapshot at: /home/lunar/.claude/shell-snapshots/snapshot-bash-1767712522086-60dnym.sh
2026-01-06T15:15:22.087Z [DEBUG] Shell binary exists: true
2026-01-06T15:15:22.087Z [DEBUG] Execution timeout: 10000ms
2026-01-06T15:15:22.088Z [DEBUG] Writing to temp file: /home/lunar/.claude/todos/a3e22fa4-eb8d-48d2-816d-825dc5c4bf60-agent-a3e22fa4-eb8d-48d2-816d-825dc5c4bf60.json.tmp.24797.1767712522088
2026-01-06T15:15:22.089Z [DEBUG] Temp file written successfully, size: 2 bytes
2026-01-06T15:15:22.089Z [DEBUG] Renaming /home/lunar/.claude/todos/a3e22fa4-eb8d-48d2-816d-825dc5c4bf60-agent-a3e22fa4-eb8d-48d2-816d-825dc5c4bf60.json.tmp.24797.1767712522088 to /home/lunar/.claude/todos/a3e22fa4-eb8d-48d2-816d-825dc5c4bf60-agent-a3e22fa4-eb8d-48d2-816d-825dc5c4bf60.json
2026-01-06T15:15:22.089Z [DEBUG] File /home/lunar/.claude/todos/a3e22fa4-eb8d-48d2-816d-825dc5c4bf60-agent-a3e22fa4-eb8d-48d2-816d-825dc5c4bf60.json written atomically
2026-01-06T15:15:22.092Z [DEBUG] Total LSP servers loaded: 0
2026-.cursor/extensions/eamodio.gitlens-17.8.1-universal/CLAUDE.md01-06T15:15:22.093Z [DEBUG] getPluginSkills: Processing 0 enabled plugins
2026-01-06T15:15:22.093Z [DEBUG] Total plugin skills loaded: 0
2026-01-06T15:15:22.093Z [DEBUG] Total plugin commands loaded: 0
2026-01-06T15:15:22.093Z [DEBUG] Registered 0 hooks from 0 plugins
2026-01-06T15:15:22.094Z [DEBUG] [LSP SERVER MANAGER] getAllLspServers returned 0 server(s)
2026-01-06T15:15:22.094Z [DEBUG] LSP manager initialized with 0 servers
2026-01-06T15:15:22.094Z [DEBUG] Loaded 0 unique skills (managed: 0, user: 0, project: 0, duplicates removed: 0)
2026-01-06T15:15:22.094Z [DEBUG] LSP server manager initialized successfully
2026-01-06T15:15:22.094Z [DEBUG] LSP notification handlers registered successfully for all 0 server(s)
2026-01-06T15:15:22.094Z [DEBUG] Attempting to auto-install official marketplace
2026-01-06T15:15:22.096Z [DEBUG] getSkills returning: 0 skill dir commands, 0 plugin skills
2026-01-06T15:15:22.125Z [DEBUG] Git remote URL: null
2026-01-06T15:15:22.125Z [DEBUG] No git remote URL found
2026-01-06T15:15:22.125Z [DEBUG] Not in a GitHub repository, skipping path mapping update
2026-01-06T15:15:22.125Z [DEBUG] Shell snapshot created successfully (3463 bytes)
2026-01-06T15:15:22.126Z [DEBUG] Install: Starting installation process (force=false, target=undefined)
2026-01-06T15:15:22.126Z [DEBUG] Install: Calling installLatest(force=true, target=undefined, forceReinstall=false)
2026-01-06T15:15:22.168Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522168
2026-01-06T15:15:22.168Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.169Z [DEBUG] Temp file written successfully, size: 51850 bytes
2026-01-06T15:15:22.169Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.169Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522168 to /home/lunar/.claude.json
2026-01-06T15:15:22.169Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.240Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522240
2026-01-06T15:15:22.240Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.241Z [DEBUG] Temp file written successfully, size: 51913 bytes
2026-01-06T15:15:22.241Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.241Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522240 to /home/lunar/.claude.json
2026-01-06T15:15:22.242Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.242Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522242
2026-01-06T15:15:22.242Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.243Z [DEBUG] Temp file written successfully, size: 51957 bytes
2026-01-06T15:15:22.243Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.243Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522242 to /home/lunar/.claude.json
2026-01-06T15:15:22.243Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.244Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522244
2026-01-06T15:15:22.244Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.244Z [DEBUG] Temp file written successfully, size: 51987 bytes
2026-01-06T15:15:22.244Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.244Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522244 to /home/lunar/.claude.json
2026-01-06T15:15:22.244Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.245Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522245
2026-01-06T15:15:22.245Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.245Z [DEBUG] Temp file written successfully, size: 52012 bytes
2026-01-06T15:15:22.245Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.245Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522245 to /home/lunar/.claude.json
2026-01-06T15:15:22.245Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:22.445Z [DEBUG] Checking for native installer update to version 2.0.76
2026-01-06T15:15:22.911Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712522911
2026-01-06T15:15:22.911Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:22.920Z [DEBUG] [SLOW OPERATION DETECTED] fs.writeFileSync (8.4ms)
2026-01-06T15:15:22.920Z [DEBUG] Temp file written successfully, size: 52094 bytes
2026-01-06T15:15:22.920Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:22.920Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712522911 to /home/lunar/.claude.json
2026-01-06T15:15:22.920Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:25.100Z [INFO] SSH not configured for GitHub, using HTTPS for anthropics/claude-plugins-official
2026-01-06T15:15:25.781Z [DEBUG] Added marketplace source: claude-plugins-official
2026-01-06T15:15:25.781Z [DEBUG] Successfully auto-installed official marketplace
2026-01-06T15:15:25.782Z [DEBUG] Writing to temp file: /home/lunar/.claude.json.tmp.24797.1767712525782
2026-01-06T15:15:25.782Z [DEBUG] Preserving file permissions: 100600
2026-01-06T15:15:25.783Z [DEBUG] Temp file written successfully, size: 52189 bytes
2026-01-06T15:15:25.783Z [DEBUG] Applied original permissions to temp file
2026-01-06T15:15:25.783Z [DEBUG] Renaming /home/lunar/.claude.json.tmp.24797.1767712525782 to /home/lunar/.claude.json
2026-01-06T15:15:25.783Z [DEBUG] File /home/lunar/.claude.json written atomically
2026-01-06T15:15:29.457Z [ERROR] Error: Error: NON-FATAL: Lock acquisition failed for /home/lunar/.local/share/claude/versions/2.0.76 (expected in multi-process scenarios)
at _f$ (/$bunfs/root/claude:2239:2155)
at EuI (/$bunfs/root/claude:2237:8645)
at async Us0 (/$bunfs/root/claude:2237:11360)
at async pb (/$bunfs/root/claude:2239:236)
at async D (/$bunfs/root/claude:4630:982)
at processTicksAndRejections (native:7:39)
2026-01-06T15:15:29.457Z [DEBUG] Install: installLatest returned version=null, wasUpdated=false, lockFailed=true
2026-01-06T15:15:29.458Z [ERROR] Install command failed: Error: Could not install - another process is currently installing Claude. Please try again in a moment.
``

vadim-anthropic · 9 months ago

Thanks for the detailed report! This is fixed and will be in the next release.

lee-b · 9 months ago

I was able to work around this by essentially deleting everything listed by find 2> /dev/null / -iname \*claude\* -o -iname \*anthropic\* except for avoiding touching some third-party libraries and plugins that include claude/anthropic stuff, such as litellm. curl -fsSL https://claude.ai/install.sh | bash then worked.

p.s.: People who work at anthropic probably shouldn't try this one ;)

github-actions[bot] · 9 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.