[BUG] Desktop app: Remote Control session is paused by idle timeout ~15 min after a stealth-update relaunch (RC hold not restored)

Status Open
Reported on v2.1.260
Maintainer reply None cached
Activity 1 comment · opened Sep 4, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet (closest is #91717 — also triggered by a desktop app update, but a different symptom: HTTP 403 on connect)
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary
A local Code-tab session with Remote Control active is normally protected from the 900 s idle pause — the log shows Skipping pause … remote control is active (explicit bridge) every 15 min. After the app performs a stealth update and relaunches itself, that protection is not restored: the first idle timeout after the relaunch pauses the session, which kills its Remote Control connection. From the phone the session shows as disconnected and can only be recovered by reaching the Mac (remote desktop) and resuming it there.

Evidence (~/Library/Logs/Claude/main.log)

Before the update, every 15 minutes:

2026-09-04 06:46:54 [info] [WarmLifecycle:session] Idle timeout reached, disconnecting local_<A>
2026-09-04 06:46:54 [info] [CCD] Skipping pause for session local_<A> - remote control is active (explicit bridge)

Update and relaunch:

2026-09-04 06:56:59 [info] [stealth-update] Triggering stealth update after idle timeout
2026-09-04 06:56:59 [info] beforeQuitForUpdate handler fired, going down for update
2026-09-04 06:57:10 [info] [updater] Version changed since last launch: 1.44121.4 → 1.46388.1
2026-09-04 06:57:12 [info] [sessions-bridge] Reconnecting persisted session cse_<X>
2026-09-04 06:57:13 [info] [sessions-bridge] Session cse_<X> reconnected successfully
2026-09-04 06:57:12 [info] [WarmLifecycle:session] Starting idle timeout for local_<A>: 900s

First idle timeout after the relaunch — no "Skipping pause" this time:

2026-09-04 07:12:13 [info] [WarmLifecycle:session] Idle timeout reached, disconnecting local_<A>
2026-09-04 07:12:13 [info] [CCD] Pausing session local_<A> (idle_timeout)

It is deterministic. Every Pausing session … (idle_timeout) in the whole log follows a stealth update by ~15 min, and there are none at any other time:

| stealth update | pause | session |
|----------------------|----------|----------------|
| 2026-09-02 01:13:50 | 01:29:03 | local_<B> |
| 2026-09-02 16:24:37 | 16:39:50 | local_<A> |
| 2026-09-02 23:35:24 | 23:50:37 | local_<A> |
| 2026-09-03 08:46:12 | 09:01:26 | local_<A> |
| 2026-09-04 06:56:59 | 07:12:13 | local_<A> |

Also: resuming the paused session in the app afterwards (2026-09-04 09:07:03) did not re-enable Remote Control. The log shows [rcAutoEnable] verdict: enable=true source=explicit_pref only on a send (trigger=first_turn / warm_send / cold_resume), so a session that was paused while Remote Control was active comes back without it until the user sends a turn from the desktop — which is precisely what they cannot do from the phone.

What Should Happen?

After a stealth-update relaunch, sessions that had Remote Control active keep the idle-pause hold (or get Remote Control re-enabled), and resuming a session honours "Enable remote control by default".

Error Messages/Logs

No error is logged. The pause is recorded as an ordinary idle timeout — the only difference from the healthy case is the missing Skipping pause … remote control is active (explicit bridge) line after the relaunch (see excerpts above).

Steps to Reproduce

  1. On macOS, start a local Code-tab session in the Claude desktop app with Remote Control on; drive it from the Claude mobile app; leave it idle.
  2. Let the app stage an update and perform its stealth update ([stealth-update] Triggering stealth update after idle timeout → relaunch).
  3. About 15 minutes after the relaunch, observe [CCD] Pausing session … (idle_timeout) in main.log. The session is gone from the phone; the app never logged "Skipping pause" again after the relaunch.

Claude Model

claude-fable-5-1 (not model-related)

Is this a regression?

Unknown — first observed 2026-09-02; reproduced on every stealth update since (5/5).

Claude Code Version

2.1.260, bundled in Claude desktop app 1.46388.1 (the previous app build 1.44121.4 showed the same behaviour)

Platform

Anthropic API (claude.ai subscription)

Operating System

macOS (Darwin 25.6.0), Apple Silicon

Terminal/Shell

Claude desktop app (Code tab); sessions driven from the Claude iOS app via Remote Control

Additional Information

Environment

  • Claude desktop app for macOS, stealth-updated 1.44121.4 → 1.46388.1; bundled Claude Code 2.1.260
  • macOS (Darwin 25.6.0), Apple Silicon Mac. Machine awake throughout (caffeinate assertion held), wired network unchanged
  • "Enable remote control by default" on (ccRemoteControlDefaultEnabled: true); session driven from the Claude iOS app

Control case: A session spawned on the same machine by the CLI server (claude remote-control --spawn worktree) at 04:59 survived the same relaunch and is still connected.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗