{"version":"2.1.242","anchor":"rejected-websocket-upgrades-now-say-why-including-cloudflare","canonical_anchor":"rejected-websocket-upgrades-now-say-why-including-cloudflare","heading":"Rejected WebSocket upgrades now say why, including Cloudflare blocks","tier":"notice","area":"Internals","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/rejected-websocket-upgrades-now-say-why-including-cloudflare","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Rejected WebSocket upgrades now say why, including Cloudflare blocks\n\nRefused WebSocket connections now report the status and whether Cloudflare blocked them.\n\n**What**\n\nWhen a WebSocket connection is refused before it opens, Claude Code records the HTTP status and whether Cloudflare mitigated the request, logs the Cloudflare ray id, writes a short bracketed note into the running task's output, and closes the socket instead of failing silently.\n\n**Details**\n\n- Triggered by the underlying client's unexpected-response event, so it covers rejections that never became a WebSocket.\n\n**Evidence**\n\n`[callWs] upgrade rejected: status=`\n\n- Area: Internals\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 2\/5"}