claude-code - 💡(How to fix) Fix [BUG] MSIX Claude Desktop: Web view gets permanently stuck on error page — no user recovery path [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#45372Fetched 2026-04-09 08:06:57
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
labeled ×2unlabeled ×1

When the Claude Desktop MSIX app encounters a network/TLS failure (e.g., corporate proxy with TLS inspection), the Electron web view caches the Chrome error page (chrome-error://chromewebdata/). The auto-updater continues to function and install new versions, but the UI never recovers — the app launches to a blank/error window indefinitely. The only fix is a full manual reinstall.

This is an architectural issue: the MSIX update mechanism replaces app binaries but does not clear or validate the web view cache stored in %APPDATA%\Claude, and the MSIX packaging model prevents users from hooking into the app launch to clear it themselves.

Error Message

2026-02-04 09:36:28 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' } 2026-02-04 09:36:28 [info] Error page detected: { href: 'chrome-error://chromewebdata/' } 2026-02-05 10:27:56 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' } 2026-02-05 10:28:11 [error] Health check fetch failed: { error: Error: net::ERR_CERT_AUTHORITY_INVALID } 2026-02-07 14:35:48 [info] Failed to load URL: https://claude.ai/ { errorCode: -118, errorDescription: 'ERR_CONNECTION_TIMED_OUT' } 2026-02-09 10:47:33 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' } 2026-02-11 15:50:26 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }

Root Cause

Three architectural issues combine to create this problem:

  1. Cache stored outside MSIX sandbox: The web view cache (Cache, Code Cache, Session Storage) is stored in %APPDATA%\Claude, not in the MSIX package's own data directories (LocalCache/TempState). This means the Windows "Reset" button for packaged apps does not clear the problematic data.

  2. Auto-updater doesn't validate or clear web view state: The Squirrel/MSIX updater replaces binaries but never checks whether the web view is in a healthy state. No update can fix a stale cached error page.

  3. No retry/recovery logic in the Electron app: When the web view loads chrome-error://chromewebdata/, the app does not detect this and attempt to re-navigate to https://claude.ai/. The error state becomes permanent.

  4. MSIX packaging prevents user workarounds: Unlike a traditional .exe install, users cannot modify the app's launch shortcut to run a cache-clearing script first. The Start menu entry is managed by Windows and cannot be edited.

Fix Action

Fix / Workaround

  1. MSIX packaging prevents user workarounds: Unlike a traditional .exe install, users cannot modify the app's launch shortcut to run a cache-clearing script first. The Start menu entry is managed by Windows and cannot be edited.

Code Example

2026-02-04 09:36:28 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-04 09:36:28 [info] Error page detected: { href: 'chrome-error://chromewebdata/' }
2026-02-05 10:27:56 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-05 10:28:11 [error] Health check fetch failed: { error: Error: net::ERR_CERT_AUTHORITY_INVALID }
2026-02-07 14:35:48 [info] Failed to load URL: https://claude.ai/ { errorCode: -118, errorDescription: 'ERR_CONNECTION_TIMED_OUT' }
2026-02-09 10:47:33 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-11 15:50:26 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }

---

2026-02-04  Update downloaded: 1.1.1890
2026-02-07  Update downloaded: 1.1.2321
2026-02-09  Update downloaded: 1.1.2512
2026-02-11  Update downloaded: 1.1.2685
2026-02-12  Update downloaded: 1.1.2998
2026-02-14  Update downloaded: 1.1.3189
2026-02-17  Update downloaded: 1.1.3363
2026-02-19  Update downloaded: 1.1.3541
2026-02-19  Update downloaded: 1.1.3647
2026-02-20  Update downloaded: 1.1.3770
2026-02-23  Update downloaded: 1.1.4010
2026-02-24  Update downloaded: 1.1.4088
2026-02-25  Update downloaded: 1.1.4173

---

2026-02-07 14:36:59 [warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$..._AutoUpdater_$_updaterState_$store$_update listeners added.

---

## Timeline from `main.log`

### Phase 1: Normal operation (Jan 14–Feb 3)
App installed, updated through 8 versions (1.0.32181.1.1520), UI loaded successfully.

### Phase 2: Network failures begin (Feb 411)

2026-02-04 09:36:28 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-04 09:36:28 [info] Error page detected: { href: 'chrome-error://chromewebdata/' }
2026-02-05 10:27:56 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-05 10:28:11 [error] Health check fetch failed: { error: Error: net::ERR_CERT_AUTHORITY_INVALID }
2026-02-07 14:35:48 [info] Failed to load URL: https://claude.ai/ { errorCode: -118, errorDescription: 'ERR_CONNECTION_TIMED_OUT' }
2026-02-09 10:47:33 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-11 15:50:26 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }


The `ERR_CERT_AUTHORITY_INVALID` errors indicate a corporate proxy performing TLS inspection — a legitimate and common enterprise network configuration.

### Phase 3: Updates continue, UI never recovers (Feb 425)
Auto-updater successfully downloaded and installed 12 more versions while the UI remained stuck:

2026-02-04  Update downloaded: 1.1.1890
2026-02-07  Update downloaded: 1.1.2321
2026-02-09  Update downloaded: 1.1.2512
2026-02-11  Update downloaded: 1.1.2685
2026-02-12  Update downloaded: 1.1.2998
2026-02-14  Update downloaded: 1.1.3189
2026-02-17  Update downloaded: 1.1.3363
2026-02-19  Update downloaded: 1.1.3541
2026-02-19  Update downloaded: 1.1.3647
2026-02-20  Update downloaded: 1.1.3770
2026-02-23  Update downloaded: 1.1.4010
2026-02-24  Update downloaded: 1.1.4088
2026-02-25  Update downloaded: 1.1.4173


No `Failed to load URL` entries appear after Feb 11, suggesting the web view stopped attempting to reload `claude.ai` entirely — it remained stuck on the cached error page.

### Phase 4: Manual reinstall required
User had to manually reinstall the app to restore the UI.
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Summary

When the Claude Desktop MSIX app encounters a network/TLS failure (e.g., corporate proxy with TLS inspection), the Electron web view caches the Chrome error page (chrome-error://chromewebdata/). The auto-updater continues to function and install new versions, but the UI never recovers — the app launches to a blank/error window indefinitely. The only fix is a full manual reinstall.

This is an architectural issue: the MSIX update mechanism replaces app binaries but does not clear or validate the web view cache stored in %APPDATA%\Claude, and the MSIX packaging model prevents users from hooking into the app launch to clear it themselves.

Environment

  • OS: Windows 11 (x64, 1280x800 display, scale factor 1.5)
  • Initial version: 1.0.3218 (installed 2026-01-14)
  • Final version before reinstall: 1.1.4173 (auto-updated 2026-02-25)
  • Install type: MSIX package (Packages\Claude_pzs8sxrjxfjjc)

Timeline from main.log

Phase 1: Normal operation (Jan 14–Feb 3)

App installed, updated through 8 versions (1.0.3218 → 1.1.1520), UI loaded successfully.

Phase 2: Network failures begin (Feb 4–11)

2026-02-04 09:36:28 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-04 09:36:28 [info] Error page detected: { href: 'chrome-error://chromewebdata/' }
2026-02-05 10:27:56 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-05 10:28:11 [error] Health check fetch failed: { error: Error: net::ERR_CERT_AUTHORITY_INVALID }
2026-02-07 14:35:48 [info] Failed to load URL: https://claude.ai/ { errorCode: -118, errorDescription: 'ERR_CONNECTION_TIMED_OUT' }
2026-02-09 10:47:33 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-11 15:50:26 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }

The ERR_CERT_AUTHORITY_INVALID errors indicate a corporate proxy performing TLS inspection — a legitimate and common enterprise network configuration.

Phase 3: Updates continue, UI never recovers (Feb 4–25)

Auto-updater successfully downloaded and installed 12 more versions while the UI remained stuck:

2026-02-04  Update downloaded: 1.1.1890
2026-02-07  Update downloaded: 1.1.2321
2026-02-09  Update downloaded: 1.1.2512
2026-02-11  Update downloaded: 1.1.2685
2026-02-12  Update downloaded: 1.1.2998
2026-02-14  Update downloaded: 1.1.3189
2026-02-17  Update downloaded: 1.1.3363
2026-02-19  Update downloaded: 1.1.3541
2026-02-19  Update downloaded: 1.1.3647
2026-02-20  Update downloaded: 1.1.3770
2026-02-23  Update downloaded: 1.1.4010
2026-02-24  Update downloaded: 1.1.4088
2026-02-25  Update downloaded: 1.1.4173

No Failed to load URL entries appear after Feb 11, suggesting the web view stopped attempting to reload claude.ai entirely — it remained stuck on the cached error page.

Phase 4: Manual reinstall required

User had to manually reinstall the app to restore the UI.

Root cause

Three architectural issues combine to create this problem:

  1. Cache stored outside MSIX sandbox: The web view cache (Cache, Code Cache, Session Storage) is stored in %APPDATA%\Claude, not in the MSIX package's own data directories (LocalCache/TempState). This means the Windows "Reset" button for packaged apps does not clear the problematic data.

  2. Auto-updater doesn't validate or clear web view state: The Squirrel/MSIX updater replaces binaries but never checks whether the web view is in a healthy state. No update can fix a stale cached error page.

  3. No retry/recovery logic in the Electron app: When the web view loads chrome-error://chromewebdata/, the app does not detect this and attempt to re-navigate to https://claude.ai/. The error state becomes permanent.

  4. MSIX packaging prevents user workarounds: Unlike a traditional .exe install, users cannot modify the app's launch shortcut to run a cache-clearing script first. The Start menu entry is managed by Windows and cannot be edited.

Additional log evidence

The claude.ai-web.log also shows an EventEmitter leak related to the auto-updater retrying during the failure period:

2026-02-07 14:36:59 [warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$..._AutoUpdater_$_updaterState_$store$_update listeners added.

What Should Happen?

Proposed fixes

  1. Add automatic recovery: Detect when the web view is on chrome-error://chromewebdata/ and periodically retry loading https://claude.ai/ with exponential backoff.

  2. Clear stale cache on update: When the auto-updater installs a new version, clear Cache, Code Cache, and Session Storage to prevent stale error states from persisting across versions.

  3. Move cache into MSIX sandbox: Store web view cache in the MSIX package's LocalCache directory so that Windows' built-in app reset functionality works.

  4. Add tray icon recovery option: Expose a "Clear cache and reload" menu item in the system tray icon so users can recover without reinstalling, even when the main window is blank.

  5. Support NODE_EXTRA_CA_CERTS in MSIX: Ensure the packaged app respects this environment variable so enterprise users behind TLS-inspecting proxies can add their organization's CA certificate.

Error Messages/Logs

## Timeline from `main.log`

### Phase 1: Normal operation (Jan 14–Feb 3)
App installed, updated through 8 versions (1.0.3218 → 1.1.1520), UI loaded successfully.

### Phase 2: Network failures begin (Feb 4–11)

2026-02-04 09:36:28 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-04 09:36:28 [info] Error page detected: { href: 'chrome-error://chromewebdata/' }
2026-02-05 10:27:56 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-05 10:28:11 [error] Health check fetch failed: { error: Error: net::ERR_CERT_AUTHORITY_INVALID }
2026-02-07 14:35:48 [info] Failed to load URL: https://claude.ai/ { errorCode: -118, errorDescription: 'ERR_CONNECTION_TIMED_OUT' }
2026-02-09 10:47:33 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }
2026-02-11 15:50:26 [info] Failed to load URL: https://claude.ai/ { errorCode: -106, errorDescription: 'ERR_INTERNET_DISCONNECTED' }


The `ERR_CERT_AUTHORITY_INVALID` errors indicate a corporate proxy performing TLS inspection — a legitimate and common enterprise network configuration.

### Phase 3: Updates continue, UI never recovers (Feb 4–25)
Auto-updater successfully downloaded and installed 12 more versions while the UI remained stuck:

2026-02-04  Update downloaded: 1.1.1890
2026-02-07  Update downloaded: 1.1.2321
2026-02-09  Update downloaded: 1.1.2512
2026-02-11  Update downloaded: 1.1.2685
2026-02-12  Update downloaded: 1.1.2998
2026-02-14  Update downloaded: 1.1.3189
2026-02-17  Update downloaded: 1.1.3363
2026-02-19  Update downloaded: 1.1.3541
2026-02-19  Update downloaded: 1.1.3647
2026-02-20  Update downloaded: 1.1.3770
2026-02-23  Update downloaded: 1.1.4010
2026-02-24  Update downloaded: 1.1.4088
2026-02-25  Update downloaded: 1.1.4173


No `Failed to load URL` entries appear after Feb 11, suggesting the web view stopped attempting to reload `claude.ai` entirely — it remained stuck on the cached error page.

### Phase 4: Manual reinstall required
User had to manually reinstall the app to restore the UI.

Steps to Reproduce

Steps to reproduce

  1. Install Claude Desktop on Windows via MSIX package.
  2. Connect to a network with a TLS-inspecting proxy (or simulate by blocking claude.ai temporarily).
  3. Launch the app — it will show an error page.
  4. Restore network connectivity and relaunch the app.
  5. Observe that the app remains stuck on the error page despite the network being available.
  6. Note that auto-updates continue to install successfully in the background.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

the most recent startup entry shows: App version: 1.1062.0 Claude Code SDK: 2.1.92 Node: 22.21.1

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

I'm using Claude Desktop (fat client), which maybe I shouldn't be and should just use the command line.

extent analysis

TL;DR

The issue can be mitigated by implementing automatic recovery and clearing stale cache on update, allowing the app to retry loading the main URL after encountering a network or TLS failure.

Guidance

  • Implement a retry mechanism with exponential backoff to reload https://claude.ai/ when the web view is stuck on chrome-error://chromewebdata/.
  • Clear the web view cache (Cache, Code Cache, and Session Storage) when the auto-updater installs a new version to prevent stale error states.
  • Consider moving the web view cache into the MSIX sandbox to leverage Windows' built-in app reset functionality.
  • Add a "Clear cache and reload" option to the system tray icon for user-initiated recovery.
  • Ensure the app respects the NODE_EXTRA_CA_CERTS environment variable to support enterprise users with custom CA certificates.

Example

A possible implementation of the retry mechanism could involve using a library like retry-async to periodically attempt to load the main URL with increasing delays between attempts.

Notes

The proposed fixes aim to address the architectural issues identified in the problem report. However, the effectiveness of these solutions may depend on the specific requirements and constraints of the Claude Desktop application.

Recommendation

Apply the workaround by implementing automatic recovery and clearing stale cache on update, as this approach directly addresses the identified root causes and provides a clear path to mitigating the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING