[BUG] claude update and install script report success without actually updating on Windows

Resolved 💬 3 comments Opened Jan 30, 2026 by seanmartinsmith Closed Jan 30, 2026

Environment

  • Windows 11
  • PowerShell 7.5.4
  • Claude Code installed via irm https://claude.ai/install.ps1 | iex
  • DISABLE_AUTOUPDATER=1 set in settings.json (should only affect auto-updates per docs)

What's Wrong

Both claude update and the install script report successful updates but don't actually replace the binary.

Steps to Reproduce

  1. Have Claude Code 2.1.23 installed
  2. Close all Claude sessions
  3. Run taskkill /F /IM claude.exe (confirms no processes running)
  4. Run irm https://claude.ai/install.ps1 | iex
  5. Output says "Version: 2.1.25" and "Installation complete!"
  6. Run claude --version → still shows 2.1.23

Same behavior with claude update - reports success, version unchanged.

Investigation

  • File timestamp on claude.exe unchanged after "successful" install
  • No file lock (verified no claude processes running)
  • File attributes normal (just Archive)
  • Manual Copy-Item of the downloaded binary works fine
  • Downloaded binaries appear in ~/.claude/downloads/ with correct versions

Root cause: The claude.exe install subcommand (used internally by both update methods) silently fails to copy the binary to .local/bin/ but reports success anyway.

Workaround

# Download manually
Invoke-WebRequest -Uri "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.25/win32-x64/claude.exe" -OutFile "$env:USERPROFILE\.claude\downloads\claude-new.exe"

# Copy manually  
Copy-Item "$env:USERPROFILE\.claude\downloads\claude-new.exe" "$env:USERPROFILE\.local\bin\claude.exe" -Force

# Verify
claude --version

Expected Behavior

Either:

  1. The update should actually replace the binary, OR
  2. If something fails, report an error instead of success

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗