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
- Have Claude Code running, close laptop / shutdown
- Reboot, open terminal, run claude
- CLI auto-updates itself in background (check .claude/.last-update-result.json for timestamp)
- Session immediately shows "expired", prompts /login
- 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.