[BUG] Active Remote Control sessions auto-archived server-side when shared OAuth credential rotates on another Mac (multi-Mac datapoint)
Summary
Active Claude Code desktop sessions on macOS are archived server-side (banner "This session is archived. Unarchive it to continue the conversation." at claude.ai/code) without any user action. Local session records remain isArchived: false — client and server archive state diverge (matches #65838).
Existing open reports on cross-client archiving are all Mac + iPhone (#75525, #79198). This report adds the missing Mac + Mac datapoint, with a complete log-correlated timeline pointing to shared-credential rotation as the trigger.
Environment
- Claude Desktop macOS 1.24012.11 (auto-updated from 1.24012.9 on 2026-08-04), Darwin 25.3.0
- Claude Code CLI 2.1.220 on four Macs sharing one Max20 subscription via OAuth (1 interactive MacBook Pro + 3 always-on nodes running headless
claude -pworkers and--remote-controlsessions) - iOS app also signed in to the same account (Code tab rarely used)
- Sessions run with cwd
/Users/<user>— the dominant transcript bucket (96 transcripts; cf. density hypothesis in #59451 where ~83 triggered)
Timeline (2026-08-04, all times local)
| Time | Event | Evidence |
|---|---|---|
| 00:09 | Mac #2 (always-on) rotates the shared OAuth credential | keychain item mdat = 20260804000938Z |
| 05:38 | MacBook Pro desktop app logs [oauth] CLI requested token refresh after 401 | ~/Library/Logs/Claude/main.log |
| 05:51 / 06:39 | Last activity in two active sessions | session records |
| ~06:46–06:48 | MacBook Pro forced re-login; new credential established | keychain mdat = 20260804064857Z |
| 08:05 | 503 overloaded_error on GET /v1/environment_providers/<org>/environments?limit=1000 | renderer log |
| morning | Both sessions (plus one from the previous evening) found archived server-side; local JSON still isArchived: false | claude.ai/code banner |
This is the third observed occurrence of the pattern (2026-07-29, 2026-08-04 previous instance, 2026-08-04 above): the always-on Mac rotates the shared credential overnight → the interactive Mac gets 401s a few hours later → sessions that were active on the interactive Mac end up archived server-side.
Hypothesis
Refresh tokens are single-use; when another Mac on the same subscription rotates the shared credential, the interactive Mac's bridge/environment connection dies with 401. The server appears to treat this as "Claude Code exited" and applies the by-design RC archiving rule (changelog v2.1.113: "Fixed Remote Control sessions not being archived when Claude Code exits") to sessions that are still live/resumable locally.
This unifies the Mac+iPhone reports (#75525, #79198) with multi-Mac: any second client event that invalidates or supersedes the first client's bridge session triggers server-side archiving of active sessions.
Expected
Sessions that are active or resumable on the originating machine should never be auto-archived by credential rotation or bridge reconnects. Archive state should reconcile with the owning client, not with the last client event.
Workaround used
Open claude.ai/code/<session_01…> directly → Unarchive. No data loss observed; local JSONL transcripts intact throughout.
Ask
- Confirm whether bridge disconnect / 401 is treated as session exit for archiving purposes.
- An opt-out (
disableAutoArchive) as requested in #60043. - Multi-device credential handling that doesn't invalidate sibling machines (or documented guidance for multi-Mac single-subscription setups).