Repository navigation
[BUG] Claude Desktop macOS requires quitting twice (Cmd+Q → wait → system Dock pop-up menu Quit) #14951
Description
Activity
- addedhas reproHas detailed reproduction stepsHas detailed reproduction stepsplatform:macosIssue specifically occurs on macOSIssue specifically occurs on macOS
on Dec 21, 2025 Correction: Second quit MUST be via Dock context menu
I need to correct the bug description. The second quit cannot be Cmd+Q again—it specifically requires:
- Press Cmd+Q → App appears to close (window gone) but process remains running
- Right-click Dock icon → Select "Quit" from context menu
Pressing Cmd+Q a second time does NOT work. Only the Dock right-click → Quit method terminates the app after the initial Cmd+Q.
This suggests the
beforeQuithandler may be eating subsequent Cmd+Q events entirely, and only the Dock's quit mechanism (which may use a different code path likeapp.terminate()or similar) can actually kill the process.Apologies for the confusion in the original report.
Reacted by Levan Kekelidze, Rebelist, Stelios M., Liam Mitchell, Peter Binderup, Thibault Terrasson, Tomas Navratil, Calvin Carter, Steve Thomas, jddeitch and 1 more- changed the title
[-][BUG] Claude Desktop macOS requires quitting twice (Cmd+Q → wait → Cmd+Q again)[/-][+][BUG] Claude Desktop macOS requires quitting twice (Cmd+Q → wait → system Dock pop-up menu Quit)[/+]on Dec 21, 2025 Update: App enters completely broken "zombie state" after first Cmd+Q
This bug is more severe than initially described. After pressing Cmd+Q once:
What happens:
- Main window closes
- App process remains running (visible in Dock)
- App becomes completely non-functional:
- Cmd+Q no longer responds at all
- Cannot open new conversations
- Cannot open Settings
- Cannot spawn any new windows
- Clicking Dock icon does nothing useful
Only recovery:
Right-click Dock icon → "Quit" from context menu
Impact:
This isn't just a "press quit twice" annoyance—the app becomes a zombie process that's completely unresponsive to normal user interaction. The standard macOS app lifecycle is completely broken.
This suggests
beforeQuitis not just delaying quit, but putting the app into an invalid state where it:- Has closed all windows
- Has disabled normal quit handling
- Cannot recover to a usable state
- Only responds to forced termination via Dock
Reacted by Stelios M., Edin Rustempašić and Max OnoClaude literally wrote this bug report and fouled up the original description.
I made Claude update the body of the original bug report.
Came to report the same. Thanks.
"Force quit" (Apple Menu -> Force Quit...) also works to kill Claude definitively (of course).
Output from shell
ps auxwww | grep -i claudeafter quit:USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND doug 39832 9.3 0.4 1891065040 269616 ?? S 10:00PM 0:03.37 /Applications/Claude.app/Contents/MacOS/Claude doug 39845 0.1 0.6 1890794720 433664 ?? S 10:01PM 0:02.69 /Applications/Claude.app/Contents/Frameworks/Claude Helper (Renderer).app/Contents/MacOS/Claude Helper (Renderer) --type=renderer --user-data-dir=/Users/doug/Library/Application Support/Claude --secure-schemes=sentry-ipc --bypasscsp-schemes=sentry-ipc --cors-schemes=sentry-ipc --fetch-schemes=sentry-ipc --app-path=/Applications/Claude.app/Contents/Resources/app.asar --enable-sandbox --lang=en-US --num-raster-threads=4 --enable-zero-copy --enable-gpu-memory-buffer-compositor-resources --enable-main-frame-before-activation --renderer-client-id=7 --time-ticks-at-unix-epoch=-1766339674579378 --launch-time-ticks=11186261832 --shared-files --field-trial-handle=1718379636,r,12268896909618004120,14992523860770622580,262144 --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,PdfUseShowSaveFilePicker,ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=18 doug 39842 0.0 0.1 1890484768 98976 ?? S 10:00PM 0:00.16 /Applications/Claude.app/Contents/Frameworks/Claude Helper (Renderer).app/Contents/MacOS/Claude Helper (Renderer) --type=renderer --user-data-dir=/Users/doug/Library/Application Support/Claude --secure-schemes=sentry-ipc --bypasscsp-schemes=sentry-ipc --cors-schemes=sentry-ipc --fetch-schemes=sentry-ipc --app-path=/Applications/Claude.app/Contents/Resources/app.asar --enable-sandbox --lang=en-US --num-raster-threads=4 --enable-zero-copy --enable-gpu-memory-buffer-compositor-resources --enable-main-frame-before-activation --renderer-client-id=6 --time-ticks-at-unix-epoch=-1766339674579378 --launch-time-ticks=11185180821 --shared-files --field-trial-handle=1718379636,r,12268896909618004120,14992523860770622580,262144 --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,PdfUseShowSaveFilePicker,ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=67 doug 39837 0.0 0.1 469377008 76960 ?? S 10:00PM 0:00.35 /Applications/Claude.app/Contents/Frameworks/Claude Helper.app/Contents/MacOS/Claude Helper --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --user-data-dir=/Users/doug/Library/Application Support/Claude --secure-schemes=sentry-ipc --bypasscsp-schemes=sentry-ipc --cors-schemes=sentry-ipc --fetch-schemes=sentry-ipc --shared-files --field-trial-handle=1718379636,r,12268896909618004120,14992523860770622580,262144 --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,PdfUseShowSaveFilePicker,ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=36 doug 39835 0.0 0.1 469400544 99712 ?? S 10:00PM 0:00.71 /Applications/Claude.app/Contents/Frameworks/Claude Helper (GPU).app/Contents/MacOS/Claude Helper (GPU) --type=gpu-process --user-data-dir=/Users/doug/Library/Application Support/Claude --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAABgAAMAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=1718379636,r,12268896909618004120,14992523860770622580,262144 --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,PdfUseShowSaveFilePicker,ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=32 doug 39834 0.0 0.0 468989328 9152 ?? S 10:00PM 0:00.01 /Applications/Claude.app/Contents/Frameworks/Electron Framework.framework/Helpers/chrome_crashpad_handler --no-rate-limit --monitor-self-annotation=ptype=crashpad-handler --database=/Users/doug/Library/Application Support/Claude/Crashpad --url=https://f.a.k/e --annotation=_productName=Claude --annotation=_version=1.0.2339 --annotation=plat=OS X --annotation=prod=Electron --annotation=ver=37.10.3 --handshake-fd=17
Reacted by Toni DY, Hire MLCatlin and prg318Same. I wonder how this is not affecting more users.
Are you using DNS blocking by any chance? statsig.claude.ai? https://code.claude.com/docs/en/data-usage. Could this be a cause for this?
Reacted by Stelios M. and Hire MLCatlinI have the same problem - seems like this happened in one of the recent updates.
Reacted by Stelios M., Dimitri Prosper, Hire MLCatlin and Nikolay MarinovI think it kinda went into the Chrome-like state. 99% it's an electron app. And Chrome requires pressing Cmd+Q twice to quit. Here, it kinda quits but doesn't on first Cmd+Q. If you observe the menu bar at top of screen carefully, on the first Cmd+Q it still says Claude. Which means that it kinda only killed the UI, and to finish it off it waits for the second Cmd+Q.
Reacted by Hire MLCatlinIn my case I can press Cmd-Q as often as I like - it does not quit.
Reacted by Carlo Nicora, Case Khor, cliffoo, Gabriel Montañola, Hire MLCatlin, Allen Qingzhi Chen and Nikolay MarinovReacted by Sergey Gultyayev (aka Serhii Hultiaiev)Right. Same for me now 😅 I wonder if I imagined it 🤣
Reacted by Hire MLCatlin38 remaining items
Getting rid of Electron altogether would be the best, though.
Reacted by One Fox Studio and Tobias Riemenschneider2026 and still using technology from the stone age ... where do all the money go I wonder. For sure not in a working native app.
Hi all, thanks for your patience. We've shipped a fix in the latest release - if you update (Claude > Check for updates), restart the app (via the dock icon > "quit"), this issue should be resolved.
Reacted by Hire MLCatlinReacted by Nikolay Marinov, WarpedWing Labs, Grant C., Justin Garcia, Hire MLCatlin and Anthony MorrisReacted by toolated and Hire MLCatlinThe update didn't work for me (perhaps of the faulty state on exit it couldn't be performed) but uninstalling the app and downloading it again from the web worked. Thank you so much! 🙏 🎉
Reacted by Hire MLCatlin and Thibault TerrassonI'm seeing the same - had to manually remove it, then install from the download page, but now I can quit! Thanks!
Reacted by Hire MLCatlinClaude on MacOs was closed, I opened it, updated it then still impossible to quit during update, kill the process and automatically re-opened it. now Quit works
Reacted by Hire MLCatlinWoohoo! Update fixed this for me.
Reacted by Hire MLCatlinUpdate worked fine. Yes, yes, had to Force Quit one last time to exit and relaunch Claude 1.0.2768, but after that, good to go on my machine.
Reacted by Rebelist and Hire MLCatlinReacted by toolated and Justin Garcia@felixrieseberg & @joan-anthropic,
Thank You so very much for fixing this bug! The fix is working for me as well.
Yes, I also had to:
- click "Restart to update..."
- quit from dock
- start again
- click "Restart to update..."
- quit from dock
- and start again once more in order to get mine updated as well.
Due to the nature of the original bug, I suspect we'll have either (a) a bunch of repeat attempts to run the update before it takes affect, or (b) re-installation as an easier force-update strategy.
I intend to leave this issue open for a few more days to give everyone a chance to get updated and fixed -- let me know if this is a problem. Please continue to focus responses on this particular issue.
Thank You again to Joan and Felix!!
Going to close this issue. @hire-mlcatlin if people open new issues I'll take care of it. Thanks so much for reporting!
Reacted by Toni DY, Loonies and Sense and Hire MLCatlinReacted by Toni DY@amorriscode There is still a bug left connected to this issue. If Claude is running when I try to shutdown my Mac, it is not able to close Claude, and I get a message saying that shutdown was prevented due to Claude. After that, it is no longer possible to shutdown Claude properly again. Running version 1.0.2768.
@steinrr Would you please start a new bug report, reference this bug report, and get Claude’s assistance writing up the details?
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.
- locked as resolved and limited conversation to collaborators
on Jan 21, 2026
Preflight Checklist
What's Wrong?
Note: This is a Claude Desktop bug, not Claude Code CLI.
Claude Desktop on macOS enters a zombie state after pressing Cmd+Q:
The app is stuck in a broken state where it has closed all windows, disabled normal quit handling, and cannot recover or terminate normally. Only the Dock context menu quit (which likely uses a different code path) can kill the process.
Additionally, app initialization runs twice on every launch (two identical "Starting app" log entries at the same timestamp).
What Should Happen?
Pressing Cmd+Q once should quit the app cleanly. If cleanup is needed, the app should either:
The app should NEVER enter a non-functional zombie state where it's running but completely unresponsive to user interaction.
Error Messages/Logs
Steps to Reproduce
The app is in a completely broken zombie state after step 4. Only Dock context menu quit works.
Verified on:
Claude Model
None
Is this a regression?
I don't know
Last Working Version
Unknown - bug present in all versions I've tested (1.0.1307, 1.0.2339)
Claude Code Version
N/A - This bug is in Claude Desktop app, not Claude Code CLI. Claude Desktop version: 1.0.2339
Platform
Other
Operating System
macOS
Terminal/Shell
Other
Additional Information
Environment
Severity: HIGH
This completely breaks the standard macOS app lifecycle. Users cannot:
Root Cause Analysis
The Electron
beforeQuithandler:readyForQuitflagapp.quit()The app is left in an invalid state: windowless, non-functional, but still running. Only the Dock's quit mechanism (possibly using
app.terminate()or similar) can kill it.Suggested Fix
Either:
A) Call
app.quit()immediately after cleanup completes, ORB) Don't close windows until actually quitting, OR
C) Keep app functional until quit completes
Related
Filing Note
I know this template is for Claude Code CLI, but web search indicated Claude Desktop bugs should be filed here with "external" label. Please tag appropriately.