Native installer stuck on 2.1.39 - doesn't update to latest (2.1.47)
Resolved 💬 6 comments Opened Feb 19, 2026 by genesiscz Closed Mar 23, 2026
Description
The native installer (curl -fsSL https://claude.ai/install.sh | sh) installs version 2.1.39 instead of the latest 2.1.47. Running claude update also reports "up to date" at 2.1.39.
claude updatesays 2.1.39 is current- Fresh install via
curl -fsSL https://claude.ai/install.sh | shalso installs 2.1.39 - Even after completely removing all versions from
~/.local/share/claude/versions/and~/.local/bin/claude, reinstalling still gives 2.1.39 - npm shows 2.1.47 is available: https://www.npmjs.com/package/@anthropic-ai/claude-code
Environment
- macOS (Darwin 25.2.0, arm64)
- Native binary install (
~/.local/bin/claude→~/.local/share/claude/versions/2.1.39) - curl 8.7.1
Steps to Reproduce
- Remove existing installation:
``bash``
rm -rf ~/.local/share/claude/versions/*
rm -f ~/.local/bin/claude
- Reinstall:
``bash``
curl -fsSL https://claude.ai/install.sh | sh
- Check version:
``bash``
claude --version
# Output: 2.1.39
Verbose curl output
The bootstrap script is served from GCS with last-modified: Wed, 18 Feb 2026 20:39:11 GMT and installs 2.1.39:
curl -vvfsSL https://claude.ai/install.sh | sh
* Host claude.ai:443 was resolved.
* IPv6: (none)
* IPv4: 160.79.104.10
* Trying 160.79.104.10:443...
* Connected to claude.ai (160.79.104.10) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
} [314 bytes data]
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* (304) (IN), TLS handshake, Unknown (8):
{ [19 bytes data]
* (304) (IN), TLS handshake, Certificate (11):
{ [2073 bytes data]
* (304) (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* (304) (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* (304) (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: CN=claude.ai
* start date: Jan 17 17:09:58 2026 GMT
* expire date: Apr 17 17:09:57 2026 GMT
* subjectAltName: host "claude.ai" matched cert's "claude.ai"
* issuer: C=US; O=Let's Encrypt; CN=E7
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://claude.ai/install.sh
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: claude.ai]
* [HTTP/2] [1] [:path: /install.sh]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
> GET /install.sh HTTP/2
> Host: claude.ai
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/2 302
< date: Thu, 19 Feb 2026 18:17:39 GMT
< content-type: text/html
< content-length: 143
< location: https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/bootstrap.sh
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< x-robots-tag: none
< server: cloudflare
< cf-ray: 9d07c328598c3516-PRG
< alt-svc: h3=":443"; ma=86400
<
* Ignoring the response-body
* Connection #0 to host claude.ai left intact
* Issue another request to this URL: 'https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/bootstrap.sh'
* Host storage.googleapis.com:443 was resolved.
* IPv6: (none)
* IPv4: 142.251.38.155, 142.251.141.187, 142.251.209.27, 172.217.19.27
* Trying 142.251.38.155:443...
* Connected to storage.googleapis.com (142.251.38.155) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
} [327 bytes data]
* (304) (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* (304) (IN), TLS handshake, Unknown (8):
{ [15 bytes data]
* (304) (IN), TLS handshake, Certificate (11):
{ [2526 bytes data]
* (304) (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* (304) (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* (304) (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: CN=storage.googleapis.com
* start date: Jan 26 08:44:11 2026 GMT
* expire date: Apr 20 08:44:10 2026 GMT
* subjectAltName: host "storage.googleapis.com" matched cert's "storage.googleapis.com"
* issuer: C=US; O=Google Trust Services; CN=WE2
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/bootstrap.sh
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: storage.googleapis.com]
* [HTTP/2] [1] [:path: /claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/bootstrap.sh]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
> GET /claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/bootstrap.sh HTTP/2
> Host: storage.googleapis.com
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/2 200
< x-guploader-uploadid: AGQBYWyKGcak2TaxGWde89LLHWhUO_djah9bzKekn3A4QTzIUyDWgSPD10y-8t7k5O7jg-1C
< x-goog-generation: 1771447151087971
< x-goog-metageneration: 1
< x-goog-stored-content-encoding: identity
< x-goog-stored-content-length: 4307
< x-goog-hash: crc32c=AD+I8A==
< x-goog-hash: md5=5Dy+QKeRshlmUyZxPUmvZw==
< x-goog-storage-class: STANDARD
< accept-ranges: bytes
< content-length: 4307
< server: UploadServer
< date: Thu, 19 Feb 2026 18:17:40 GMT
< expires: Thu, 19 Feb 2026 18:22:40 GMT
< cache-control: no-cache, max-age=300
< age: 0
< last-modified: Wed, 18 Feb 2026 20:39:11 GMT
< etag: "e43cbe40a791b219665326713d49af67"
< content-type: text/x-sh
< alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
<
{ [1369 bytes data]
* Connection #1 to host storage.googleapis.com left intact
Setting up Claude Code...
✔ Claude Code successfully installed!
Version: 2.1.39
Location: ~/.local/bin/claude
Next: Run claude --help to get started
✅ Installation complete!
Expected Behavior
The installer should install the latest version (currently 2.1.47 per npm).
Workaround
Install via npm instead:
npm install -g @anthropic-ai/claude-code@latestThis issue has 6 comments on GitHub. Read the full discussion on GitHub ↗