anthropics / anthropics/claude-code

[BUG] Desktop app stealth auto-update relaunches while sessions are hosted for Remote Control, dropping every remote connection

Open
#95,276 0 comments 0 reactions 0 assignees View on GitHub
area:desktop bug has repro platform:macos
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

### Preflight Checklist

- [x] I have searched existing issues and this is not a duplicate
- [x] I am using the latest version of Claude Code / the desktop app
- [x] This is a bug report, not a feature request

### What's Wrong?

I host Claude Code sessions in the Claude desktop app on a Mac and drive them from my phone through Remote Control, so the Mac gets no local keyboard or mouse input for hours at a time.

The desktop app treated that as "idle" and relaunched itself to install an update while four sessions were live and remote-controlled. Every Remote Control connection dropped at once, and nothing re-served the sessions until I was physically back at the Mac. No crash, no sleep, no network or auth problem: the app's own log shows a stealth update triggered by an idle timeout, ten minutes after the update finished downloading.

The sessions themselves survived (the relaunch restored all 23 navigation entries and the sessions were resumable locally). What was lost was their remote reachability, which for a remote-controlled machine is the whole point.

### What Should Happen?

- The stealth updater should not relaunch the app while any session is hosted for Remote Control, or at minimum while a remote client is connected. System idle is the normal state of a machine being driven remotely, so it is the wrong signal here.
- After any relaunch, sessions that were hosted for Remote Control before it should be re-served automatically, so the phone can reconnect without someone touching the Mac.
- A user-facing way to defer or disable auto-updates would let people who manage their own updates avoid this entirely. The only control today is the `disableAutoUpdates` enterprise policy key documented for MDM.

### Error Messages/Logs

From `~/Library/Logs/Claude/main.log`, 2026-09-17 (local time):

```
15:02:06 [info] [updater] Found an update, downloading
15:02:11 [info] [updater] Update downloaded and ready to install { releaseName: 'Claude 2.2553.0' }
15:12:07 [info] [WarmLifecycle:session] Idle timeout disabled, not arming for local_579c...
15:12:09 [info] [WarmLifecycle:session] Idle timeout disabled, not arming for local_bf6e...
15:12:11 [info] [updater] Staged version 2.2553.0 is still current (latest: 2.2553.0, lastTarget: null)
15:12:15 [info] [WarmLifecycle:session] Idle timeout disabled, not arming for local_bd39...
15:12:41 [info] [stealth-update] Triggering stealth update after idle timeout
15:12:41 [info] [stealth-relaunch] Saved navigation history (23 entries, active=22)
15:12:42 [info] beforeQuitForUpdate handler fired, going down for update
15:12:52 [info] Starting app {
15:12:52 [info] [updater] Version changed since last launch: 2.110.1 -> 2.2553.0
15:12:52 [info] [stealth-relaunch] Restoring navigation (23 entries, active=22, dropped=0)
```

Note the three "Idle timeout disabled, not arming" lines in the same minute: the session lifecycle knew the sessions were active, and the updater relaunched anyway.

### Steps to Reproduce

1. On macOS, open the Claude desktop app, Code tab, and start one or more sessions connected to Remote Control.
2. Drive them from the Claude mobile app (or claude.ai/code) without touching the Mac's keyboard or mouse.
3. Wait for a desktop app update to be downloaded and staged.
4. Keep working from the phone; once the Mac's system idle time passes the stealth-update threshold, the app relaunches itself.
5. Observe that every Remote Control connection drops and the sessions are not reachable from the phone again until someone interacts with the app on the Mac.

### Is this a regression?

Not sure. This is the first time I have caught it in the log; a previous unexplained loss of all remote sessions looked the same from the phone.

### Claude Code Version

Desktop app 2.110.1 -> 2.2553.0 (macOS, Apple silicon), bundled Claude Code 2.1.271 -> 2.1.274. Standalone CLI on the same machine: 2.1.274 (Claude Code), not involved.

### Platform

Claude desktop app (Code tab) with Remote Control; Claude subscription (not API).

### Operating System

macOS 27.2, Apple silicon.

### Terminal / Install method

Claude desktop app installed from the Homebrew cask `claude`; the app self-updates.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the reproduction steps and ~/Library/Logs/Claude/main.log, focusing on the stealth-update idle timeout, session hosting, and relaunch sequence. Check how Remote Control sessions are tracked before and after a relaunch, then verify that an update does not interrupt hosted sessions and that previously hosted sessions become reachable again without local interaction.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.