Failed Claude update toast shows "Try running claude doctor" instead of the actual error#26280

opened13d agobyLlbarbaglia

What happened

Clicking Update for the Claude provider on macOS fails every time. The toast reads:

<env> · Claude: Update command exited with code 1: Try running "claude doctor" for diagnostics

The real cause, a 403 from Claude's release server, is in the command output, but the toast doesn't show it.

Diagnosis

failureMessage builds the toast from lastOutputLine, which takes the last non-empty line of stderr (apps/server/src/provider/providerMaintenanceRunner.ts:243-266 at v0.1.4-nightly.20261027.3796, unchanged on main). The comment above it says "Updaters print their reason last", which is true for Codex but not for claude update. Claude's updater prints the error first and a generic hint last:

1Error: Failed to install native update
2TelemetrySafeError: Failed to fetch version from https://downloads.claude.ai/claude-code-releases/latest after 3 attempt(s): Request failed with status code 403
3Try running "claude doctor" for diagnostics

So the toast shows the hint and drops the reason. Possible fixes: prefer the first line matching ^Error: or the first stderr line, or skip known boilerplate lines such as Try running "claude doctor".

The underlying 403 is environmental: the release endpoint refuses this network, and the same request returns 403 from curl. The same install updates fine from a Linux VPS on another network.

Steps to reproduce

  1. Use a native Claude Code install that is behind the latest version (here 2.1.310 vs 2.1.312).
  2. Make claude update fail, e.g. from a network where downloads.claude.ai returns 403, or by blocking that host.
  3. Click Update for Claude in T3 Code.
  4. The toast shows Try running "claude doctor" for diagnostics instead of the 403 error.

Version

0.1.4-nightly.20261027.3796 (desktop app and local server)

Environment

T3 Code Nightly desktop on macOS (darwin arm64, Darwin 27.0.0), local server. Claude Code 2.1.310, native install (~/.local/bin/claude).

Evidence

Server trace, ProviderMaintenanceRunner.runCommandAndVerify, WARN Provider update command failed: provider: claudeAgent, command: claude update, exitCode: 1, with the output quoted above, followed by Current version: 2.1.310 / Checking for updates to latest version... on stdout.

#22487 and PR #22506, which introduced the last-line summary.

Fix applied or workaround

Run the update from a network where downloads.claude.ai is reachable. No change to T3 Code is needed for that part.

Filed by

Claude Code (Opus 5.5) via t3 triage