[Bug] Auto-update reports install_failed with null version_to/error_code despite already being on latest (macOS native)

Status Open
Reported on v2.1.233
Maintainer reply None cached
Activity 0 comments · opened Aug 17, 2026

Description

The background auto-updater recorded a failed update attempt, but the resulting status is uninformative and doesn't correspond to an actual available update — claude doctor shows a persistent failure banner even though the CLI is already on the latest version.

Environment

  • Running: native 2.1.233
  • Commit: f8d57569aaf3
  • Platform: darwin-arm64 (macOS)
  • Config install method: native
  • Auto-updates: enabled, channel: latest

Steps to reproduce

  1. Let the background auto-updater run normally.
  2. Run claude doctor — it shows:

``
Last update attempt: failed (install_failed) — 2026-08-17
``

  1. Run claude update manually — it reports:

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

  1. Run claude doctor again — the failed status from step 2 is still shown, unchanged.

Diagnostic data

~/.claude/.last-update-result.json:

{"timestamp":"2026-08-17T05:36:20.985Z","path":"native","outcome":"failed","status":"install_failed","version_from":"2.1.233","version_to":null,"error_code":null}

Note version_to and error_code are both null — the failure record doesn't identify what version it was trying to install or why it failed, which made this impossible to diagnose locally.

Also noting update/doctor expose no verbose/debug flag to get more detail:

  • claude update --verboseerror: unknown option '--verbose'
  • claude update --debugerror: unknown option '--debug'
  • claude --debug update → misparses update as a --print prompt argument instead of routing to the update subcommand

Expected behavior

  • The failure record should include enough detail (target version, actual error) to diagnose without guessing.
  • If the CLI is already on the latest available version, a stale/false install_failed status from an earlier check shouldn't persist indefinitely in claude doctor output.

Related issues

This looks like the same underlying pattern as #67634, #81898, and #82408, but I'm filing separately since none of those threads have this exact version_to: null, error_code: null diagnostic detail.

View original on GitHub ↗