{"record":{"id":"fff86535174df833","repo":"diegosouzapw/OmniRoute","slug":"upgrade-required","errorCode":"upgrade_required","errorMessage":"Use WebSocket.","messagePattern":"Use WebSocket\\.","errorType":"http","errorClass":null,"httpStatus":426,"severity":"error","filePath":"src/lib/services/embedWsProxy.ts","lineNumber":251,"sourceCode":" * permanently \"disconnected\" in headless deployments (#5110). Defaults to\n * loopback for safety when neither is set.\n */\nexport function resolveEmbedWsHost(): string {\n  return process.env.EMBED_WS_PROXY_HOST ?? process.env.LIVE_WS_HOST ?? DEFAULT_HOST;\n}\n\n/**\n * Start the embed WebSocket proxy server.\n * Idempotent — safe to call multiple times.\n */\nexport function initEmbedWsProxy(): void {\n  if (globalThis.__omnirouteEmbedWsStarted) return;\n\n  const host = resolveEmbedWsHost();\n  const port = parseInt(process.env.EMBED_WS_PROXY_PORT ?? String(DEFAULT_PORT), 10);\n\n  const server = http.createServer((_req, res) => {\n    res.writeHead(426, \"Upgrade Required\", { \"content-type\": \"application/json\" });\n    res.end(JSON.stringify({ error: \"upgrade_required\", message: \"Use WebSocket.\" }));\n  });\n\n  server.on(\"upgrade\", (req: IncomingMessage, socket: net.Socket, head: Buffer) => {\n    proxyUpgrade(req, socket, head).catch((err: unknown) => {\n      const msg = err instanceof Error ? err.message : String(err);\n      writeError(socket, 500, `Internal proxy error: ${msg}`);\n    });\n  });\n\n  server.on(\"error\", (err: NodeJS.ErrnoException) => {\n    if (err.code === \"EADDRINUSE\") {\n      console.warn(`[EmbedWsProxy] Port ${port} is already in use — embed WS proxy disabled.`);\n      return;\n    }\n    console.warn(\"[EmbedWsProxy] Failed to start:\", err.message);\n  });\n","sourceCodeStart":233,"sourceCodeEnd":269,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/services/embedWsProxy.ts#L233-L269","documentation":"Error \"Use WebSocket.\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/services/embedWsProxy.ts:251 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}