From 729c0acc435902b406113ed47284f75262ef0918 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sun, 9 Aug 2026 20:00:32 -0400 Subject: [PATCH] fix(runtime): correct the socket error handler's type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A WebSocket error handler receives an Event, not an Error, so reading .message off it was wrong. It only surfaced on a cold checkout — with built declarations present, the inference happened to resolve differently, which is why the previous commit passed locally and would have failed CI. --- packages/runtime/src/relayTransport.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/runtime/src/relayTransport.js b/packages/runtime/src/relayTransport.js index ff2b101..96470e1 100644 --- a/packages/runtime/src/relayTransport.js +++ b/packages/runtime/src/relayTransport.js @@ -172,8 +172,10 @@ export function createRelayTransport(urls, options = {}) { } }; - socket.onerror = (error) => { - diagnostic("relay socket error", { url, error: String(error?.message ?? error) }); + socket.onerror = (/** @type {any} */ event) => { + // A socket error handler receives an Event, not an Error: the useful + // detail (if any) hangs off it rather than being the argument itself. + diagnostic("relay socket error", { url, error: String(event?.message ?? event?.type ?? event) }); }; socket.onclose = () => {