Repository navigation
Windows: Browser pane GPU-process crash on Cloudflare Turnstile page kills entire app; session resume re-triggers it (crash loop) #90461
Description
Activity
- addedduplicateThis issue or pull request already existsThis issue or pull request already existsplatform:windowsIssue specifically occurs on WindowsIssue specifically occurs on Windowshas reproHas detailed reproduction stepsHas detailed reproduction steps
on Aug 28, 2026 Reproduced on a third GPU vendor and a much newer app build — byte-identical
exitCode 101457950/0x060C201E, same Turnstile trigger.Environment
- App: Claude desktop for Windows, MSIX (
Claude_pzs8sxrjxfjjc), 1.40609.0.0 — notably newer than the 1.37937.x in the original report, so this is still live. - CCD: 2.1.247, Node 24.18.1
- OS: Windows 11 Pro 10.0.26200
- GPU: hybrid NVIDIA GeForce RTX 5070 Laptop (Blackwell), driver 32.0.16.1074 + Intel UHD (RaptorLake-S). Adds a third vendor to the AMD 890M here and the NVIDIA/Intel adapters in [BUG] Desktop (Windows): GPU process crashes with identical exitCode 101457950 (0x060C201E) on both NVIDIA and Intel adapters #83835 — same exit code across all of them, which lines up with [BUG] Windows Desktop destroys its own crash evidence — and the first GPU-process dump shows D3D12Core raising a non-continuable fail-fast (0x060C201E) #89525's finding that the fault is a D3D12Core non-continuable fail-fast rather than anything vendor-specific.
Trigger
Identical: the in-app Browser pane loading a site fronted by a Cloudflare Turnstile challenge. In my case it was a site I develop locally being previewed from a Claude Code session — worth noting because "preview the app I'm building" is the pane's primary use case, and any dev site behind Turnstile hits this every time.
Two crashes, ~24 minutes apart, same signature both times:
23:37:45 [warn] [PreviewContext] Blocked subresource to private-resolving host { resourceType: 'xhr' } 23:37:47 [info] GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950, serviceName: 'GPU' }unknown-window.logshows the same probe burst 1–4 s ahead of each death:[warn] postMessage ... target origin ('https://challenges.cloudflare.com') does not match recipient window's origin [warn] OTS parsing error: Size of decompressed WOFF 2.0 is less than compressed size [warn] The powerPreference option is currently ignored when calling requestAdapter() on Windows. (x2) [error] %c%d font-size:0;color:transparent NaN [warn] A valid external Instance reference no longer exists. [warn] WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost# Timestamp (UTC+3) App version exitCode 1 2026-08-30 23:37:47 1.40609.0.0 101457950 2 2026-08-31 00:01:44 1.40609.0.0 101457950 Three things that differ from the original report
1. The app hung rather than exiting — and the OS did capture it.
The report notes no WER event and an empty Crashpad dir. Here it is the opposite, which may give you artifacts to work with:
Crashpad\reportsproduced a 36 MB minidump per crash:71955beb-0e67-4240-9106-82038640a6e5.dmp(23:37:47) and529eaaf8-2d6a-496f-a2ad-a4912741831d.dmp(00:01:44).- Sentry caught the first one immediately after the GPU death: event id
6b9e3748d45345cdb7451187f4c5e097. - Windows logged Event 1002 Application Hang and WER Event 1001
MoAppHang(P1: Claude_1.40609.0.0_x64__pzs8sxrjxfjjc,P2: praid:Claude) — but 51 seconds after the GPU process died. So the main process did not exit with the GPU child; it wedged and the OS terminated it. That delay is a window in which containment (restart the GPU process, degrade the pane) would still have been possible.
2. The MSIX wedge has a concrete file-level cause here.
The 51-second hang is what breaks the package. Windows started its automatic repair at 23:41:38 while the packaged service was still alive, and the AppXDeploymentServer log shows exactly how it failed:
error 0x80073D02: Unable to install because the following apps need to be closed Claude_1.40609.0.0_x64__pzs8sxrjxfjjc Packages were not updated because affected apps are still running. Running apps: {Claude_pzs8sxrjxfjjc!Claude} Deployment aborts due to active service Claude_pzs8sxrjxfjjc!Claude Failed to set the Trust Label on package ... Error: 0x80070057 Illegal non-AppStore or non-AppInstaller package integrity validation attempted ... Flags: 0x0The aborted repair left
app\resources\cowork-svc.exehalf-written (its mtime is the exact minute of the failed repair), so the package sits permanently atStatus: Modified, NeedsRemediationand every launch dies before writing a single log line.3.
Add-AppxPackage -Registerdoes not clear it.Worth recording as a dead end, since it is the obvious thing to try before Repair: re-registering the manifest in place returns success but leaves
Status: Modified, NeedsRemediationunchanged and the app still unlaunchable. Verified with no leftover processes at all —CoworkVMServicestopped withProcessId: 0, no orphanedcowork-svc.exe, no phantom packagedclaude.exe(the onlyclaude.exerunning was the standalone CLI at~\.local\bin, which as others noted survives the GUI death unharmed). So the file-integrity damage is real, not just a stale lock, and Repair's re-download is genuinely required.Each launch attempt also retriggers OS remediation, which terminates the app mid-start — that is what "nothing happens when I click the icon" looks like from the user side.
Happy to share the minidumps or fuller log excerpts if useful.
Reacted by Craig Stoller- App: Claude desktop for Windows, MSIX (
Environment
Claude_pzs8sxrjxfjjc). First crash on 1.37937.1; four further crashes on 1.37937.3 after the in-between auto-update.Starting applog lines)Summary
Navigating the in-app Browser pane (preview browser) to a site fronted by a Cloudflare Turnstile challenge deterministically crashes the app's GPU process within ~1–3 seconds of page load, and the entire app exits with it. Reproduced 5/5 over two days, identical exit code every time, while ~30+ other page loads in the same sessions (including other Cloudflare-CDN sites without an active challenge) were fine.
Example trigger URL:
https://www.partingtonps.com— a public site that fronts every request with a Turnstile challenge (Cf-Mitigated: challenge, HTTP 403, CSP allowingchallenges.cloudflare.com,worker-src blob:).A detail that may matter: in all reproductions the Browser pane was not displayed (an agent session driving the pane while hidden;
computer{action:"screenshot"}reported "the Browser pane is not displayed, so the page is not compositing frames"). Not yet tested with the pane visible.Log evidence
%LOCALAPPDATA%\Claude\Logs\main.log— five occurrences, identical signature:All five occurrences (each immediately preceded, 1–3 s, by the same
[PreviewContext] Blocked subresource to private-resolving hostwarning, and each the last line before the app died):101457950=0x60C201E. No WER crash dump was produced (%LOCALAPPDATA%\CrashDumpshas no Claude entries), no Application-log Event ID 1000, andCrashpad\reportsunder the package data dir is empty — so nothing user-visible captures the native crash.Reproduction steps
preview_start) and navigate to a URL fronted by a Cloudflare Turnstile challenge, e.g.https://www.partingtonps.com. (Confirm the challenge is active first:curl -sIshowsCf-Mitigated: challenge.)Three compounding follow-on problems
No GPU-process crash containment. One GPU-process crash takes down the whole app (and every running session in it). Chromium/Electron normally survives a GPU process crash and restarts it; here the app dies with it.
Session resume walks straight back into the crash. Resuming the interrupted session re-invokes the agent, which re-issues the pending/next navigation to the same URL → instant crash again. The user rolled back and retried repeatedly and hit the identical crash every time ("crashes at the exact same spot"). There is no guard against resuming into a navigation that just killed the app.
Post-crash recovery is broken. After the crash loop, the app refused to relaunch (message directing to "advanced options"). The MSIX Repair tool then refused to run with "Claude is running" even though Task Manager's Apps view showed nothing — background
claude.exeCLI engine processes (%APPDATA%\Roaming\Claude\claude-code\<ver>\claude.exe) survive the GUI crash and apparently block the check. On one occasion Repair was still blocked after a full reboot (no Claude autostart entry exists in Run keys or the Startup folder; cause unknown). The only recovery that consistently worked was reinstalling from the claude.ai website download, which re-registers the same MSIX package version.Suggested fixes
claude.exeengine processes.Workaround (for anyone else hitting this)
Probe unfamiliar domains with
curl -sIbefore loading them in the Browser pane; if the response carriesCf-Mitigated: challenge, don't pane-load the site. If the app wedges with "Claude is running," kill backgroundclaude.exeprocesses (Get-Process claude | Stop-Process -Force) or reinstall from the website download.