[BUG] Claude desktop app relaunches itself after user has explicitly quit it, triggered by background auto-update
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?
After explicitly quitting the Claude desktop app (Cmd+Q), the app was relaunched without user interaction by the ShipIt auto-updater service (com.anthropic.claudefordesktop.ShipIt). This occurred while the machine was running an intensive ML training job — CPU resources the user had deliberately freed by quitting Claude were consumed again without consent. When the app was subsequently killed via Activity Monitor, it relaunched itself again within 2–4 seconds, repeatedly.
What Should Happen?
If the user has explicitly quit Claude before or during an update, the auto-updater should install the update silently and not relaunch the app. The update should be applied the next time the user opens Claude themselves. ShipIt should check whether Claude was running prior to the update and skip the relaunch step if it was not.
ShipIt fires at the exact second Claude quits, grabbing a sleep prevention assertion:
2026-04-17 09:00:19 powerd: Process ShipIt.46958 Created PreventSystemSleep "Updating"
2026-04-17 09:00:19 loginwindow: appDeath for com.anthropic.claudefordesktop.helper
2026-04-17 09:00:19 loginwindow: appDeath for com.anthropic.claudefordesktop
App killed and relaunches within seconds, repeatedly:
2026-04-18 08:40:09 launchd: service inactive: application.com.anthropic.claudefordesktop...
2026-04-18 08:40:13 launchd: Coalition Cache Hit: app<application.com.anthropic.claudefordesktop...>
^ relaunched 4 seconds after being killed
2026-04-18 08:49:07 launchd: service inactive: application.com.anthropic.claudefordesktop...
2026-04-18 08:49:09 launchd: Coalition Cache Hit: app<application.com.anthropic.claudefordesktop...>
^ relaunched 2 seconds after being killed
Widget extension update that preceded the relaunch (confirming an update was installed):
2026-04-17 08:54:36 chronod: Refetching descriptors due to extension version change,
from 23983293197 (2026-04-08) to 24361703904 (2026-04-17T07:42:01Z)
Error Messages/Logs
Steps to Reproduce
- Quit Claude desktop app fully via Cmd+Q
- Leave the machine running unattended with a Claude update available
- ShipIt downloads and installs the update in the background
- Claude relaunches automatically upon update completion without user interaction
- Killing the relaunched process causes it to relaunch again within seconds
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
Build 23983293197 (2026-04-08) — previous version before the update that triggered the relaunch
Claude Code Version
Build 24361703904 (installed 2026-04-17 at ~03:42 AM EDT)
Platform
Other
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗