[BUG] claude update re-downloads binary even when already up to date

Resolved 💬 3 comments Opened Mar 7, 2026 by AxGord Closed Mar 7, 2026

Description

claude update re-downloads and overwrites the binary in ~/.local/share/claude/versions/ even when the installed version already matches the latest version. The file content is identical (same md5), but the file is fully re-downloaded and rewritten on every run.

Steps to Reproduce

  1. Run claude update — it downloads and installs the latest version (e.g. 2.1.71)
  2. Verify the file exists: ls -la ~/.local/share/claude/versions/2.1.71 (192MB)
  3. Record the file's md5: md5 ~/.local/share/claude/versions/2.1.71
  4. Run claude update again
  5. Observe that mtime changes but md5 remains the same — binary was re-downloaded

Evidence

# Before claude update
mtime: 1772881044 (12:57)
md5: af5ad61bb40f719c183f51975906f541

# After claude update (same version, "up to date")
mtime: 1772881351 (13:02)
md5: af5ad61bb40f719c183f51975906f541  ← identical

The output says "Claude Code is up to date (2.1.71)" but the file was still rewritten.

Impact

  • ~192MB downloaded on every claude update call, even when unnecessary
  • On slow connections this causes a 5-minute timeout (ap$=300000), leaving a 0-byte file in versions/, which breaks future updates
  • Users on metered connections waste bandwidth

Expected Behavior

Before downloading, check if versions/<version> already exists with the correct size (from manifest.json). If it matches — skip the download.

Environment

  • Version: 2.1.71
  • Platform: darwin-arm64 (macOS)
  • Install method: Native installer (standalone binary)

View original on GitHub ↗

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