Preflight Checklist
What's Wrong?
Opening the help chat in the Claude Code desktop app renders a completely blank white rounded panel - no header, no text, no controls; only a slightly lighter footer strip paints. The rest of the app is unaffected.
Log evidence (%APPDATA%\Claude\logs\main.log): at exactly the moments the panel is opened, bursts of ~100 "Blocked permission check" warnings from hCaptcha challenge frames (newassets.hcaptcha.com), alongside js.stripe.com / pay.google.com frames from the claude.ai web bundle the panel embeds. The hardened webview denies the challenge frame's permission requests (notably storage-access), the challenge never completes, and the help UI never boots.
Ruled out: firewall (widget.intercom.io, js.intercomcdn.com, api-iam.intercom.io, claude.ai all reachable from the host) and RDP/GPU blanking (the panel partially renders, the app is otherwise fine, and there are no renderer crashes or did-fail-load entries in the logs).
Likely root cause: claude.ai serves an hCaptcha challenge to the embedded help surface because the machine egresses from a datacenter IP (AWS EC2); the challenge cannot run inside the app webview, so the panel hangs blank with no error.
What Should Happen?
One of: the help surface (already-authenticated session) is exempt from the bot challenge; or the challenge can actually run inside the embedded panel; or the panel shows an error state (e.g. "Couldn't load help - visit support.claude.com") instead of silently staying a white rectangle.
Error Messages/Logs
2026-08-02 11:48:33 [warn] Blocked permission check {
permission: 'storage-access',
requestingOrigin: 'https://newassets.hcaptcha.com/',
requestingUrl: undefined,
isMainFrame: false,
topFrameUrl: undefined
}
# ~100 of these per help-panel open, timestamped exactly to the open. Denied permissions:
# storage-access, sensors, notifications, background-sync, periodic-background-sync,
# background-fetch, persistent-storage, payment-handler, keyboardLock, pointerLock, media
# Same bursts also show frames from js.stripe.com / b.stripecdn.com / pay.google.com
# (claude.ai page bundle). No did-fail-load / render-process-gone entries anywhere.
Steps to Reproduce
- Run the Claude Code desktop app on a machine with a datacenter egress IP (here: AWS EC2 Windows Server 2025 Datacenter, accessed over RDP).
- Open the in-app help chat.
- The panel opens as a blank white rounded rectangle with no controls and never loads.
- %APPDATA%\Claude\logs\main.log shows bursts of blocked hCaptcha permission checks timestamped to each open.
Claude Model
No response
Is this a regression?
No, this never worked
Last Working Version
No response
Claude Code Version
Desktop app 1.24012.9; Claude Code 2.1.219
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
Environment: Claude desktop app 1.24012.9 (win32 x64, packaged), Claude Code 2.1.219, Windows Server 2025 Datacenter (10.0.26100), AWS EC2 (ap-southeast-2), session over RDP. Org-managed account; the app also shows an "Organization access is disabled" banner, which may compound the failure (if org policy restricts claude.ai chat access, the embedded help page may not load even after a passed challenge).
Diagnosis performed with Claude Code on the affected machine. Generated with Claude Code.
Preflight Checklist
What's Wrong?
Opening the help chat in the Claude Code desktop app renders a completely blank white rounded panel - no header, no text, no controls; only a slightly lighter footer strip paints. The rest of the app is unaffected.
Log evidence (%APPDATA%\Claude\logs\main.log): at exactly the moments the panel is opened, bursts of ~100 "Blocked permission check" warnings from hCaptcha challenge frames (newassets.hcaptcha.com), alongside js.stripe.com / pay.google.com frames from the claude.ai web bundle the panel embeds. The hardened webview denies the challenge frame's permission requests (notably storage-access), the challenge never completes, and the help UI never boots.
Ruled out: firewall (widget.intercom.io, js.intercomcdn.com, api-iam.intercom.io, claude.ai all reachable from the host) and RDP/GPU blanking (the panel partially renders, the app is otherwise fine, and there are no renderer crashes or did-fail-load entries in the logs).
Likely root cause: claude.ai serves an hCaptcha challenge to the embedded help surface because the machine egresses from a datacenter IP (AWS EC2); the challenge cannot run inside the app webview, so the panel hangs blank with no error.
What Should Happen?
One of: the help surface (already-authenticated session) is exempt from the bot challenge; or the challenge can actually run inside the embedded panel; or the panel shows an error state (e.g. "Couldn't load help - visit support.claude.com") instead of silently staying a white rectangle.
Error Messages/Logs
2026-08-02 11:48:33 [warn] Blocked permission check { permission: 'storage-access', requestingOrigin: 'https://newassets.hcaptcha.com/', requestingUrl: undefined, isMainFrame: false, topFrameUrl: undefined } # ~100 of these per help-panel open, timestamped exactly to the open. Denied permissions: # storage-access, sensors, notifications, background-sync, periodic-background-sync, # background-fetch, persistent-storage, payment-handler, keyboardLock, pointerLock, media # Same bursts also show frames from js.stripe.com / b.stripecdn.com / pay.google.com # (claude.ai page bundle). No did-fail-load / render-process-gone entries anywhere.Steps to Reproduce
Claude Model
No response
Is this a regression?
No, this never worked
Last Working Version
No response
Claude Code Version
Desktop app 1.24012.9; Claude Code 2.1.219
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
Environment: Claude desktop app 1.24012.9 (win32 x64, packaged), Claude Code 2.1.219, Windows Server 2025 Datacenter (10.0.26100), AWS EC2 (ap-southeast-2), session over RDP. Org-managed account; the app also shows an "Organization access is disabled" banner, which may compound the failure (if org policy restricts claude.ai chat access, the embedded help page may not load even after a passed challenge).
Diagnosis performed with Claude Code on the affected machine. Generated with Claude Code.