[BUG] claude update reports up-to-date on 2.1.104 while 2.1.116 is latest stable

Status Fixed / completed
Reported on v2.1.104
Maintainer reply None cached
Activity 3 comments · opened Apr 21, 2026 · closed Apr 21, 2026

Bug Description

claude update and the install script (curl -fsSL https://claude.ai/install.sh | bash) both resolve the latest stable version as 2.1.104, while the changelog shows 2.1.116 as the latest release.

Steps to Reproduce

  1. Run claude update:

``
Current version: 2.1.104
Checking for updates to stable version...
Claude Code is up to date (2.1.104)
``

  1. Re-install via the install script:

``bash
curl -fsSL https://claude.ai/install.sh | bash
`
Output:
`
Setting up Claude Code...
✔ Claude Code successfully installed!
Version: 2.1.104
``

  1. Both report 2.1.104 as latest, but https://code.claude.com/docs/en/changelog shows 2.1.116.

Workaround

Passing the version explicitly to the install script works:

curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.116

This bypasses the version resolution and installs 2.1.116 correctly.

Expected Behavior

claude update and the install script should resolve to 2.1.116 (or whatever the actual latest stable release is).

Environment

  • Platform: macOS (Apple Silicon)
  • Installation method: Native binary via install.sh
  • Current version: 2.1.104 (reports as up-to-date)
  • Actual latest: 2.1.116

View original on GitHub ↗

3 Comments

Evgeniy-Sinyak · 5 months ago

Additional investigation

The version resolver is working correctly — the issue is that the stable channel endpoint hasn't been updated past 2.1.104.

Evidence:

$ curl -fsSL https://downloads.claude.ai/claude-code-releases/stable
2.1.104

$ curl -fsSL https://downloads.claude.ai/claude-code-releases/latest
2.1.116

The install script always downloads the latest binary (for the installer itself), then delegates to claude install which respects the channel. So claude update on the stable channel correctly resolves to 2.1.104 per the server.

The changelog at https://code.claude.com/docs/en/changelog doesn't distinguish between stable and latest channels, which creates the impression that 2.1.116 is the latest stable when it's actually only on the latest channel.

Workaround: Switch to the latest channel in ~/.claude/settings.json:

{
  "autoUpdatesChannel": "latest"
}

Or install a specific version explicitly:

curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.116

Additional symlink bug: When using the explicit version workaround (bash -s -- 2.1.116), the install script may not update the symlink at ~/.local/bin/claude — it can remain pointing to the old version. Manual fix: ln -sf ~/.local/share/claude/versions/2.1.116 ~/.local/bin/claude

Evgeniy-Sinyak · 5 months ago

Closing — this is not a bug in the version resolver.

Root cause: The stable npm dist-tag (and the corresponding https://downloads.claude.ai/claude-code-releases/stable endpoint) genuinely points to 2.1.104. The updater is working correctly.

$ npm view @anthropic-ai/claude-code dist-tags --json
{
  "stable": "2.1.104",
  "next": "2.1.116",
  "latest": "2.1.116"
}

The confusion comes from the changelog not distinguishing stable vs latest channel — it lists all versions without labels, making it look like 2.1.116 should be available on stable.

Workaround: Switch to the latest channel in ~/.claude/settings.json:

{
  "autoUpdatesChannel": "latest"
}
github-actions[bot] · 5 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.