Desktop app: embedded Browser pane crashes (WebGL context lost) when navigating to perplexity.ai
Environment
- OS: Windows 11 Home 10.0.26200
- Claude Code CLI binary: 2.1.217 (bundled at
%APPDATA%\Claude\claude-code\2.1.217\claude.exe) - Product: Claude desktop app (Electron), using the in-app Browser pane / claude-in-chrome tool
Summary
Navigating the embedded Browser pane to https://www.perplexity.ai reliably crashes/hangs the tab. It happened 3 times in one session.
Steps to reproduce
- Open the Browser pane (
preview_start/ navigate) in Claude Code desktop. - Navigate to
https://www.perplexity.ai. - Wait 1-2 seconds.
Observed (from %APPDATA%\Claude\logs\unknown-window.log)
Each crash follows the same sequence, ~1 second apart:
[error] Access to script at 'https://perplexity-ai.cloudflareaccess.com/cdn-cgi/access/login/pplx-next-static-public.perplexity.ai?...&redirect_url=%2F_spa%2Fassets%2F_restricted%2Frestricted-feature-loader-*.js' (redirected from 'https://pplx-next-static-public.perplexity.ai/_spa/assets/_restricted/restricted-feature-loader-*.js') from origin 'https://www.perplexity.ai' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
[warn] The powerPreference option is currently ignored when calling requestAdapter() on Windows.
[warn] WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost
[warn] A valid external Instance reference no longer exists.
After this, the tab becomes unresponsive and the session/tab has to be restarted — perceived by the user as "Claude crashed."
Likely root cause
Perplexity appears to detect the embedded browser as automated (Cloudflare Access bot/fingerprint check on pplx-next-static-public.perplexity.ai) and serves a restricted/degraded bundle. The restricted-feature-loader script fails to load due to CORS, which appears to cascade into a WebGL context loss that takes down the render for that tab.
Impact
The embedded Browser pane should degrade gracefully (show a load error / blocked-resource notice) rather than losing its WebGL context and becoming unresponsive on a single blocked script load.
Suggested fix direction
- Handle failed/CORS-blocked subresource loads without cascading into WebGL context loss for the tab.
- Consider recovering/reloading the WebGL context automatically instead of leaving the tab permanently inert.
Happy to provide the full log files if useful.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗