Failed Claude update toast shows "Try running claude doctor" instead of the actual error#26280
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:
| 1 | Error: Failed to install native update |
| 2 | TelemetrySafeError: Failed to fetch version from https://downloads.claude.ai/claude-code-releases/latest after 3 attempt(s): Request failed with status code 403 |
| 3 | Try 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
- Use a native Claude Code install that is behind the latest version (here 2.1.310 vs 2.1.312).
- Make
claude updatefail, e.g. from a network wheredownloads.claude.aireturns 403, or by blocking that host. - Click Update for Claude in T3 Code.
- The toast shows
Try running "claude doctor" for diagnosticsinstead 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.
Related issues
#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