Public artifact link renders blank page in browser due to invalid postMessage origin 'app://localhost'
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?
A public artifact link that was previously working now renders a completely blank white page in Chrome.
URL: https://claude.ai/public/artifacts/ca05d878-0dca-452a-b7b7-966f91e40fcb
The artifact shell loads (Claude header, view count visible) but the iframe content area is entirely blank. The root cause is the artifact renderer calling postMessage with target origin 'app://localhost' (an Electron origin), which throws a SyntaxError in a browser context and breaks the iframe handshake entirely, so the artifact never initializes.
What Should Happen?
The artifact content should render correctly in a browser, as it previously did. The postMessage origin negotiation should use a valid web origin, not app://localhost which is only valid in the Electron desktop app.
Error Messages/Logs
Uncaught SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'app://localhost' in a call to 'postMessage'.
at 7905-1f7e271de70b4d3c.js:1:6920
at Array.forEach (<anonymous>)
at l.requestHandshake (7905-1f7e271de70b4d3c.js:1:6890)
at new l (7905-1f7e271de70b4d3c.js:1:9710)
at 7324-2de3d1f6bfa48673.js:1:11221
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.claudeusercontent.com') does not match the recipient window's origin ('https://claude.ai').
[SERVICE_WORKER] Found 1 service worker(s), which are no longer used. Unregistering.
Steps to Reproduce
- Open https://claude.ai/public/artifacts/ca05d878-0dca-452a-b7b7-966f91e40fcb in Chrome
- Observe the page loads (header visible, view count shows 49) but content area is completely blank
- Open DevTools > Console
- See: Uncaught SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'app://localhost'
- Hard refresh (Cmd+Shift+R) does not fix it
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.89 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗