GPU process crashes (UnknownVizError) when using Browser tools, corrupting the app package and requiring full reinstall

Status Closed — duplicate
Maintainer reply None cached
Activity 13 comments · opened Jul 31, 2026 · closed Aug 25, 2026

Description

Using the in-app Browser tool (browser:open_site) intermittently crashes the Electron GPU process. The crash is deterministic in signature (same exit code every time) but not deterministic in when it happens — sometimes the very first site opened crashes it, sometimes several successful site opens/tool calls happen first and it crashes later (including once right after receiving an HTTP 403 "Forbidden" page).

After the crash, the app cannot be relaunched — Windows shows:

You'll need to go to advanced options for Claude and select Repair. If you're still having issues with it, reinstall this app or contact your administrator.

Get-AppxPackage *Claude* shows Status: Modified, NeedsRemediation after every crash, even though no files were actually changed. The Windows "Repair" option always fails ("We couldn't repair this app. Try again in a bit."). The only reliable recovery is a full Remove-AppxPackage + reinstall (login required again each time). A lighter re-register (Add-AppxPackage -Register <manifest> -DisableDevelopmentMode -ForceApplicationShutdown) sometimes clears the flag but not always.

Environment

  • Claude desktop app version: 1.24012.9.0
  • OS: Windows 11 Pro (fresh install)
  • Motherboard: Gigabyte Z790 Gaming X
  • GPU: NVIDIA GeForce RTX 4070 Ti, driver 32.0.15.9649 (2026-05-05)
  • Install source: Microsoft Store (MSIX), package family Claude_pzs8sxrjxfjjc

Steps to reproduce

  1. Fresh install of Claude desktop.
  2. Ask Claude to open any website (triggers browser:open_site tool permission card, allow it).
  3. Repeat step 2 a few times across a session (does not reproduce 100% on the first try, but reproduces reliably within a handful of site opens).
  4. App's GPU process crashes; the whole app becomes unusable; Windows flags the package as needing remediation.

Relevant log excerpt (logs/main.log)

[info] GPU process gone: {
  type: 'GPU',
  reason: 'crashed',
  exitCode: 101457950,
  serviceName: 'GPU'
}
[warn] [Preview] capturePreviewScreenshotIfChanged failed: {
  error: [Error: UnknownVizError] {
    [stack]: [Getter/Setter],
    [message]: 'UnknownVizError'
  }
}

exitCode: 101457950 = 0x060C201E (decimal shown in log). Reproduced with this exact exit code across multiple, separate crash occurrences.

What we've already ruled out

Since the crash always correlates with the Browser tool's automatic preview-screenshot capture (capturePreviewScreenshotIfChanged) rather than page content itself, we tried disabling every GPU/virtualization-adjacent system setting we could find, none of which fixed it:

  • NVIDIA overlay / GeForce Experience background services (NvContainerLocalSystem, NVDisplay.ContainerLocalSystem) — stopped and disabled, crash still occurs.
  • Windows "Hardware-accelerated GPU scheduling" — disabled, crash still occurs.
  • Windows Memory Integrity / HVCI (Hypervisor-Enforced Code Integrity) — disabled via HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity, confirmed SecurityServicesRunning: {} after reboot — crash still occurs.
  • No corresponding Windows-level display-driver TDR/reset event in Event Viewer (System log) at any crash timestamp — this is not a full driver crash, only the sandboxed Electron GPU process.

Not yet tried: full DDU (Display Driver Uninstaller) clean reinstall of the NVIDIA driver.

Requests

  1. Could Chromium's GPU process be configured to not take down the whole app / not trip the package's file-integrity flag on a sandboxed GPU-process crash? A GPU process crash in Chromium is normally recoverable (GPU process restarts) — here it seems to cascade into full app failure and MSIX package corruption flags.
  2. Since MSIX packaging blocks launching claude.exe directly with --disable-gpu (Access is denied) and there is no in-app "hardware acceleration" toggle (checked Settings → General / Claude Code / Desktop app → General/Extensions/Developer — none found), could a supported way to disable GPU acceleration for the Browser tool preview be added?
  3. As a workaround we disabled "Browser tools" entirely in Settings → Claude Code → Browser — this avoids the crash but removes the whole in-app browsing/preview feature.

Happy to provide the full main.log / cowork-service.log or a memory dump if useful.

View original on GitHub ↗

4 Comments

sioc-de-narf · 23 days ago

Adding a data point confirming this on a high-end discrete GPU with a fully healthy DX12 stack — so this isn't limited to integrated/weak GPUs or headless sessions.

Environment

  • Claude Desktop 1.26832.0 (MSIX: Claude_1.26832.0.0_x64__pzs8sxrjxfjjc)
  • Electron 42.7.0 / Chrome 148.0.7778.280 / Node 24.18.0
  • OS: Windows 10 IoT Enterprise LTSC 2021 (10.0.19044)
  • GPU: NVIDIA GeForce RTX 3080, driver 32.0.16.1074 (2026-07-02), WDDM 2.7
  • Physical/direct-access desktop (NOT RDP or a headless session)

System GPU state is healthy (rules out a driver/DirectX problem):

  • Win32_VideoController: Status OK, ConfigManagerErrorCode 0
  • dxdiag: DDI Version 12, Feature Levels 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1

Repro
Trigger the in-app agentic browser (a "site · Opened in Browser" card with an Open button; in my case app.roll20.net). Clicking Open opens the browser pane, then the window disappears within a second — before the target page even renders.

Log signature (main.log), matching this issue:

[error] [CDPTools] Compressed screenshot failed { error: [Error: UnknownVizError] ... }
[warn] [Preview] capturePreviewScreenshot failed: { error: [Error: UnknownVizError] ... }
[warn] [Preview] capturePreviewScreenshotIfChanged failed: { error: [Error: UnknownVizError] ... }

The crash correlates with the browser pane's automatic preview-screenshot capture, not with page content — consistent with the compositing-path hypothesis in this thread.

Aftermath (also matches): the MSIX package flips to Modified, NeedsRemediation and the app then refuses to launch with "There's a problem with Claude. Reinstall the application from its original install location…".

Mitigations that did NOT work in my case:

  • winget repair / winget install --force / Add-AppxPackage -Register — none cleared NeedsRemediation (note: winget install --force pulled an older version 1.25927 and created a duplicate parallel install).
  • Only re-laying the current MSIX over the top (Add-AppxPackage -Path Claude.msix -ForceApplicationShutdown) restored Status: Ok — but the next browser crash re-corrupts it.
  • --disable-gpu passed via shell:AppsFolder\Claude_pzs8sxrjxfjjc!Claude --ArgumentList appears to be swallowed by the packaged app (no effect).
  • No hardware-acceleration toggle is exposed in Desktop settings to test as a mitigation.

+1 on the request for a hardware-acceleration toggle (or honoring ELECTRON_EXTRA_LAUNCH_ARGS / an electron-flags.conf) so affected users have a working fallback.

main.anonymized.log
gpu-info.anonymized.json

cristienciu · 18 days ago

Another data point — this time on integrated Intel graphics, so it's not limited to discrete GPUs either.

Environment

  • Claude Desktop 1.26832.0 and 1.28929.0 (MSIX, Microsoft Store)
  • Windows 10 Pro 19045
  • GPU: Intel UHD Graphics 750, driver 32.0.101.7088 (2026-06)
  • Same signature every time: GPU process gone: reason 'crashed', exitCode 101457950 (0x060C201E) while the in-app browser loads an external site, then main.log stops — the whole app dies. (exitCode 34 occurrences are benign here — GPU process restarts fine.)

Additional things ruled out on this machine

  • Hardware acceleration OFF: on 1.28929 there IS a native toggle — Help → Troubleshooting → "Disable Hardware Acceleration" (persists isHardwareAccelerationDisabled: true in %APPDATA%\Claude\claude_desktop_config.json). The crash still occurs with acceleration disabled, identical exit code — so the GPU driver stack is fully out.
  • Antivirus (Avast) folder exclusion for C:\Program Files\WindowsApps\Claude_* — no change.
  • The crash leaves no forensic trace: no WER report, no Application/System event, Crashpad folder empty. The GPU process exits with a fatal code rather than faulting, so there is no dump to attach.

Possibly useful correlation for locating the code path: in 4 of 6 fatal crashes the last main.log line ≤2 s before death was
[PreviewContext] Blocked subresource to private-resolving host { resourceType: 'xhr' }
— and that warning never appears anywhere else in our logs.

MSIX recovery that works here without reinstall or reboot: the servicing failure lands ~7 s after the crash with 0x80073D02 ("apps need to be closed") because zombie claude.exe processes still hold the package — that's what leaves it in NeedsRemediation. Killing them first, then re-registering, has cleared it every time here:

Get-Process claude -ErrorAction SilentlyContinue | Stop-Process -Force
Get-AppxPackage *Claude* | % { Add-AppxPackage -Register -DisableDevelopmentMode "$($_.InstallLocation)\AppxManifest.xml" }

+1 on the core request: a GPU-process crash should not take down the shell and every running session.

imbanytuidoter · 18 days ago

Confirming this on a desktop dual-GPU system (not a laptop), with the full corruption-recurrence cycle documented. Same exit code, same WebGL signature.

Environment

  • Claude Desktop 1.26832.0.0 x64, MSIX (Claude_pzs8sxrjxfjjc)
  • Windows 11
  • Desktop, AM5 platform, 8-core AMD Ryzen 7000-series CPU
  • Discrete: NVIDIA RTX 50-series, driver 32.0.16.1088 (2026-07-22)
  • Integrated: AMD RDNA2 iGPU, driver 32.0.21045.1000 / Adrenalin 26.7.1 (2026-07-23)
  • Monitor connected to the discrete GPU

Crash signaturemain.log:

[info] GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950, serviceName: 'GPU' }

Logged twice, then the app dies. The crash occurs ~2 seconds after launch, immediately after the OAuth token lookup — i.e. during initial render, not during an active browsing session. This differs from the existing reports, where the crash follows interaction with the browser pane.

Preceding errorsunknown-window.log, same second as the crash:

[warn] The powerPreference option is currently ignored when calling requestAdapter() on Windows. See https://crbug.com/369219127
[warn] OTS parsing error: Size of decompressed WOFF 2.0 is less than compressed size
[warn] A valid external Instance reference no longer exists.
[warn] WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost

Also recurring, though I can't tell whether they're related: an unhandled promise rejection reporting no registered handler for a $eipc_message$ ... claude.buddy ... BuddyBleTransport ... reportState remote method (identifiers redacted), and Setting the document's base URI to 'https://claude.ai/' violates the following Content Security Policy directive: "base-uri 'none'".

Package corruption is a consequence of the crash, and it recurs

This is the part worth emphasising, because it turns a crash into an unusable install. After each GPU crash:

Get-AppxPackage *laude* | Select-Object Version,Status
1.26832.0.0    Modified, NeedsRemediation

In this state the app shows the Windows dialog "Can't open this app / go to Claude's advanced options and select Repair", and CoworkVMService cannot start at all (Cannot start service CoworkVMService) because its binary lives inside the package. Note the service's security descriptor also denies configuration changes to an elevated administrator (Set-Service ... Access is denied) while Stop-Service is permitted — worth checking whether that's intended.

What did and did not restore it:

  • Settings → Apps → Claude → Repair: did not clear NeedsRemediation
  • Add-AppxPackage -Register AppxManifest.xml (re-registration): completed with no error, status unchanged — it rewrites the store entry, not the files on disk
  • Add-AppxPackage -Path Claude.msix -ForceApplicationShutdown -ForceUpdateFromAnyVersion, overwriting with the signed package freshly downloaded from your latest/redirect endpoint: restored Status: Ok and allowed the service to start

But it does not hold: the package returned to Modified, NeedsRemediation after the next crash. Three full cycles over two days. Each crash re-corrupts the registration, so the recovery path is a repeated 253 MB reinstall.

Ruled out

  • GPU driver: updating the integrated AMD driver from a 2025-04 build to Adrenalin 26.7.1 with Factory Reset did not stop the crash
  • Not a display-driver TDR — no nvlddmkm/Dxgkrnl events in the System log at crash time; the failure is contained to the Electron GPU process
  • vmcompute and hns running, Virtual Machine Platform enabled

No usable mitigation via flags (confirming #83028 and #77857): MSIX blocks passing --disable-gpu / --disable-gpu-compositing, arguments passed via Start-Process shell:AppsFolder\... are silently dropped, and there is no hardware-acceleration toggle in Settings.

Workaround that appears to work: Settings → Claude Code → Browser → disable Browser tools. The cost is the entire in-app browser and live preview.

Requests

  1. Don't let a GPU-process crash take down the whole app — Chromium normally relaunches the GPU process and repaints
  2. Above all: don't let an ungraceful exit corrupt the MSIX registration. Repair-or-reinstall as the recovery path for a rendering fault is a very high price
  3. Expose a Disable Hardware Acceleration toggle, or honour ELECTRON_EXTRA_LAUNCH_ARGS, so there is a reachable mitigation on MSIX
  4. Consider defaulting multi-GPU desktop systems to software compositing (see #56805, which reports the same AMD-iGPU-plus-RTX-50-series pairing)

I can provide main.log, unknown-window.log and cowork-service.log privately via support if useful — I'd rather not attach them publicly, as they contain account and workspace identifiers.

strumienapp · 17 days ago

There is a mitigation that keeps the in-app browser and live preview: the official Claude Setup.exe bootstrapper accepts an undocumented --exe switch that installs the classic non-MSIX (Squirrel) build to %LOCALAPPDATA%\AnthropicClaude\ instead of the MSIX. Root cause analysis in #81341 explains why that helps: the GPU process runs with the MicrosoftSignedOnly CIG mitigation while the package ships an Anthropic-signed vk_swiftshader.dll and no working AppxMetadata\CodeIntegrity.cat — inside the MSIX container that Code Integrity denial is escalated to a fatal GPU-process kill (your 0x060C201E) and it's the same integrity failure that flags the package Modified, NeedsRemediation after every crash. Outside MSIX the identical denial is non-fatal, which also solves the "MSIX blocks passing flags" problem, since the Squirrel claude.exe is directly runnable.

Verified on my machine (RTX 5080, Win11 26200) after 10/10 fatal crashes on MSIX with second-exact CodeIntegrity 3033/3010 events: after switching via "Claude Setup.exe" --exe, the same pages (Google Sign-In / GSI widgets in my case) load fine, GPU process survives, no new 3033 events, no package corruption. User data survives the switch (%APPDATA%\Claude and ~/.claude are shared between builds; no re-login). Another user confirmed the same fix on Win10 + AMD iGPU in #81341.

Showing cached comments. Read the full discussion on GitHub ↗