earendil-works/pi · error
WebSocket transport is not available in this runtime
Error message
WebSocket transport is not available in this runtime
What it means
Error "WebSocket transport is not available in this runtime" thrown in earendil-works/pi.
Source
Thrown at packages/ai/src/api/openai-codex-responses.ts:1047
entry.idleTimer = setTimeout(() => {
if (entry.busy) return;
closeWebSocketSilently(entry.socket, 1000, "idle_timeout");
const accountEntries = websocketSessionCache.get(sessionId);
if (accountEntries?.get(accountId) === entry) accountEntries.delete(accountId);
if (accountEntries?.size === 0) websocketSessionCache.delete(sessionId);
}, SESSION_WEBSOCKET_CACHE_TTL_MS);
}
async function connectWebSocket(
url: string,
headers: Headers,
signal?: AbortSignal,
connectTimeoutMs = DEFAULT_WEBSOCKET_CONNECT_TIMEOUT_MS,
env?: ProviderEnv,
): Promise<WebSocketLike> {
const WebSocketCtor = await getWebSocketConstructor(env);
if (!WebSocketCtor) {
throw new Error("WebSocket transport is not available in this runtime");
}
const wsHeaders = headersToRecord(headers);
delete wsHeaders["OpenAI-Beta"];
return new Promise<WebSocketLike>((resolve, reject) => {
let settled = false;
let timeout: ReturnType<typeof setTimeout> | undefined;
let socket: WebSocketLike;
try {
socket = new WebSocketCtor(url, { headers: wsHeaders });
} catch (error) {
reject(error instanceof Error ? error : new Error(String(error)));
return;
}
const cleanup = () => {View on GitHub (pinned to 4af9d21d3b)
Solutions
- Run in a runtime with WebSocket support, or use the SSE transport instead.
When it happens
Trigger: Thrown at packages/ai/src/api/openai-codex-responses.ts:1047 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/f19afaeb6968a098.
Report an issue: GitHub.