[BUG] Idle auto-update stops all sessions and Remote Control never comes back after the relaunch
What's Wrong?
The desktop app's idle auto-update stops every running Code tab session, and after the relaunch Remote Control does not come back for any of them. Sessions stay unreachable remotely until each one is opened or messaged on the machine itself.
On 2026-10-02 I locked a Mac mini (on AC, idle sleep disabled with pmset sleep 0, keep-awake on) at 16:48, leaving 12 running sessions that all had Remote Control enabled. At 18:46 the app ran its idle update (2.16120.0 to 2.19675.0). It stopped all 12 sessions before quitting. After the relaunch it warmed only the session that had focus, logged no rcAutoEnable verdict for it, and did not start the other 11. Nothing re-enabled Remote Control for about 62 hours. The sessions were unreachable from claude.ai/code and the mobile app until I was back at the machine on 2026-10-05 and interacted with them locally.
The Remote Control preference itself is kept. When I opened the sessions again, rcAutoEnable logged source=explicit_pref trigger=cold_resume and the bridges connected straight away. The preference is just never applied as part of the relaunch.
This is not a one-off. The same log shows the identical pattern after the idle updates on 2026-09-25, 2026-09-28 and 2026-09-30, and the app logged 18 idle updates between 2026-08-28 and 2026-10-02. With updates this frequent, Remote Control can't be relied on for any absence longer than a few hours, which is the main reason to use it.
What Should Happen?
After an idle update relaunch, every session that had Remote Control enabled before the quit should be brought back and reconnect its bridge on its own. If that is not possible, the idle update should not run while sessions with Remote Control are attached, or should wait until the user is active again.
Error Messages/Logs
All from ~/Library/Logs/Claude/main1.log, identifiers redacted.
Last Remote Control enable before the update, then the update stopping the sessions:
2026-10-02 16:46:05 [info] [rcAutoEnable] verdict: enable=true source=explicit_pref trigger=cold_resume
2026-10-02 16:46:07 [info] Remote control enabled: "https://claude.ai/code/session_<redacted>"
2026-10-02 16:46:07 [info] [remote-control] bridge_state: "connected"
2026-10-02 18:46:05 [info] [stealth-update] Triggering stealth update after idle timeout
2026-10-02 18:46:05 [info] [CCD] Stopping 12 active session(s) on quit
2026-10-02 18:46:07 [info] [CCD] CLI exit before update: 12 of 12 exited within 1655ms
The relaunch. Only the focused session is warmed, with no rcAutoEnable line anywhere after it:
2026-10-02 18:46:21 [info] [updater] Version changed since last launch: 2.16120.0 → 2.19675.0
2026-10-02 18:46:23 [info] [CCD] LocalSessions.setFocusedSession: sessionId=local_<redacted>
2026-10-02 18:46:24 [info] [CCD] Warming session local_<redacted>
2026-10-02 18:46:41 [info] [CCD] Session local_<redacted> warmed successfully in 16617ms
The next Remote Control activity of any kind, about 62 hours later, each one triggered by me locally:
2026-10-05 09:01:05 [info] [rcAutoEnable] verdict: enable=true source=user_intent trigger=warm_send
2026-10-05 09:01:05 [info] Enabling remote control for session local_<redacted>
2026-10-05 09:02:15 [info] Resuming session local_<redacted> in <redacted>
2026-10-05 09:02:15 [info] [rcAutoEnable] verdict: enable=true source=explicit_pref trigger=cold_resume
2026-10-05 09:02:17 [info] Remote control enabled: "https://claude.ai/code/session_<redacted>"
2026-10-05 09:02:17 [info] [remote-control] bridge_state: "connected"
Earlier idle updates, each followed by no Remote Control activity until a local message:
2026-09-25 00:40:20 [info] [CCD] Stopping 5 active session(s) on quit
2026-09-25 12:15:40 [info] [rcAutoEnable] verdict: enable=true source=user_intent trigger=warm_send
2026-09-28 21:55:53 [info] [CCD] Stopping 10 active session(s) on quit
2026-09-29 08:56:50 [info] [rcAutoEnable] verdict: enable=true source=user_intent trigger=warm_send
2026-09-30 00:08:01 [info] [CCD] Stopping 7 active session(s) on quit
2026-09-30 10:49:08 [info] [rcAutoEnable] verdict: enable=true source=user_intent trigger=warm_send
In case it matters, remote-control.log shows the device-level service was already off from 09:19 that morning, before the update, and stayed off after it:
2026-10-02 09:19:15.236 [info] state auth_stale → off trigger=my_access intent=default served=6 registering=0 failed=0 excluded=0 limited=16 missing=0 sessions=0
2026-10-02 18:46:05.766 [info] quit: 0 attached session(s) queued for unarchive, 0 parked for the next launch
2026-10-02 18:46:25.188 [info] state pending → off trigger=launch intent=default served=6 registering=0 failed=0 excluded=0 limited=16 missing=0 sessions=0
The machine did not sleep. pmset -g log has no Sleep or Wake entry between 2026-10-02 16:40 and 2026-10-05 09:05. The display turned off at 16:49 on 2026-10-02 and on again at 08:59 on 2026-10-05.
App settings in claude_desktop_config.json: ccRemoteControlDefaultEnabled: true, keepAwakeEnabled: true.
Steps to Reproduce
- In the desktop app Code tab, with Remote Control default and keep-awake both on, have one or more local sessions running with Remote Control enabled.
- Check that they are reachable from claude.ai/code or the mobile app.
- Lock the screen and leave the machine idle (system awake) while a desktop app update is available.
- Wait for
[stealth-update] Triggering stealth update after idle timeoutinmain1.log. - Try to reach the sessions remotely. They are offline and stay offline until each one is opened or messaged in the desktop app on the machine itself.
Environment
- Claude desktop app 2.19675.0 (updated from 2.16120.0 by the idle update), Code tab, bundled Claude Code 2.1.286
- macOS 27.0 (26A428), Mac mini M2, on AC power
- Model: Opus
- Regression: I don't know
Possibly related, different trigger: #96600 (scheduled tasks start with Remote Control disabled despite the default).
Kind regards,
Stanislav Stoyanov
Private DevOps LTD
https://privatedevops.com
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗