[BUG] "Open in desktop app" (code-session teleport) opens a blank window and hangs the whole app
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
Clicking the "open in desktop app" handoff link from a web Claude Code session
(claude://claude.ai/code/session_<id>) opens an empty white child window titled
"Code" and never loads the session. The dead renderer then drags the main
webview into an unresponsive state, freezing both windows. The desktop app
recognizes the teleport feature is disabled (code session deep link gated off)
but still spawns the window instead of failing gracefully.
Severity
Medium–High. App-wide hang (both windows unresponsive) triggered by a built-in,
clickable link. The app auto-recovers via "kill and reload" after ~1–2 min, so it
is not a permanent crash, but it is fully reproducible and locks up active work.
Environment
- Claude desktop: 1.15962.0 (build 1.15962.0) — latest available
- Bundled Claude Code CLI: 2.1.187
- macOS: 26.5.1 (25F80), Apple Silicon (arm64)
- URL scheme handler correctly registered:
claude->com.anthropic.claudefordesktop - Installation ID:
<paste from Help -> Troubleshooting -> Copy Installation ID>
Actual result
- Blank white "Code" window (no UI ever renders).
- Main webview becomes unresponsive; app freezes, then auto kill-and-reloads.
Expected result
- Either the session loads in the desktop app, or — if the teleport feature is
gated off for this build/account — the link is declined silently (or with a
small notice) without opening a renderer and without hanging the app.
What Should Happen?
The web link should open the desktop app without failing
Error Messages/Logs
main.log — handler explicitly gates the deep link off, matching each click:
2026-06-26 10:55:18 [info] Remote control enabled: https://claude.ai/code/session_01UKupMAD49N9neti4q1oBic
2026-06-26 16:43:07 [info] claudeURLHandler: code session deep link gated off
2026-06-26 16:43:32 [info] claudeURLHandler: code session deep link gated off
main.log — main webview hangs and is force-reloaded (recurs):
2026-06-26 16:35:23 [info] Main webview is unresponsive, will kill and reload
value: 'Main webview became unresponsive'
2026-06-26 16:56:52 [info] Main webview is unresponsive, will kill and reload
value: 'Main webview became unresponsive'
unknown-window.log — the blank "Code" renderer throws on init and never mounts:
[error] Setting the document's base URI to 'https://claude.ai/' violates the
following Content Security Policy directive: "base-uri 'none'".
The action has been blocked.
[error] Uncaught (in promise) Error: Error invoking remote method
'...claude.buddy...BuddyBleTransport_$_reportState':
No handler registered for '...BuddyBleTransport_$_reportState'
Steps to Reproduce
- Start a Claude Code session in the web app (claude.ai/code).
- Click the "open in desktop app" link, i.e.
claude://claude.ai/code/session_<id>. - Observe a new child window titled "Code" open as a blank white pane.
- The session never loads; within ~1 min both the "Code" window and the main
window become unresponsive.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude 1.15962.0 (039543) 2026-06-25T01:24:19.000Z
Platform
Other
Operating System
macOS
Terminal/Shell
Other
Additional Information
Screenshot
<img width="1728" height="1117" alt="Image" src="https://github.com/user-attachments/assets/732abc5b-118d-4cd9-a81c-e8e2466dbb54" />
Notes
- No native crash report is generated (nothing in ~/Library/Logs/DiagnosticReports),
consistent with a renderer hang rather than a process crash.
- The session itself is fine and remains remote-controllable from the web; only the
desktop's local adoption of the session fails.
- A full diagnostic bundle is available via Help -> Troubleshooting -> Generate
Diagnostic Report (attach on request; it contains raw logs).
Suggested fix
When claudeURLHandler determines the code-session deep link is gated off, return
early before creating the child BrowserWindow, so no empty renderer is spawned
and the main webview is not affected.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗