Auto-update at boot invalidates session, forces relogin

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

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

  • Version: 2.1.235 → auto-updated to 2.1.237 at boot
  • Symptom: session says "expired", forces /login, right after native auto-update runs at cold-start on Windows 11
  • .credentials.json refreshToken still valid (not actually expired) — update process itself invalidates session, not token expiry
  • .last-update-result.json timestamp matches failure time
  • OS: Windows 11, native install, domain-joined machine

What Should Happen?

Session should survive native auto-update. Refresh token isn't actually expired — relogin shouldn't be needed after an update completes.

Error Messages/Logs

.last-update-result.json:
{"timestamp":"2026-08-20T03:58:42.322Z","path":"native","outcome":"success","status":"success","version_from":"2.1.235","version_to":"2.1.237","error_code":null}

CLI message on launch: "Please run /login" (session expired)

Steps to Reproduce

  1. Have Claude Code running, close laptop / shutdown
  2. Reboot, open terminal, run claude
  3. CLI auto-updates itself in background (check .claude/.last-update-result.json for timestamp)
  4. Session immediately shows "expired", prompts /login
  5. Manually /login — works fine, valid until next reboot+update cycle

Claude Model

Not sure / Multiple models

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.237

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Machine is domain-joined (Windows 11). Config backup at ~/.claude/backups/.claude.json.backup shrank in size right after the failing update (79KB → 76KB), suggesting the update process partially resets local config/session state, not just the token.

Fast Startup (hiberboot) enabled — ruled out as cause (cold boot vs hybrid boot both trigger the issue).
Verified refreshToken in .credentials.json is NOT expired at time of failure — expiresAt several days out.

View original on GitHub ↗