mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-30 20:44:31 +00:00
fix(openai): preserve websocket upgrade error messages (#29774)
This commit is contained in:
parent
824ecf2f4d
commit
cbc4b062f7
2 changed files with 14 additions and 2 deletions
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
import WebSocket from "ws"
|
||||
import { ProviderError } from "@/provider/error"
|
||||
import { errorMessage } from "@/util/error"
|
||||
|
||||
export const PROTOCOL_HEADER = "responses_websockets=2026-02-06"
|
||||
|
||||
|
|
@ -94,10 +95,10 @@ export function connectResponsesWebSocket(options: ConnectResponsesWebSocketOpti
|
|||
resolve(socket)
|
||||
}
|
||||
|
||||
function onError(error: Error) {
|
||||
function onError(error: unknown) {
|
||||
socket.on("error", () => {})
|
||||
cleanup()
|
||||
reject(error)
|
||||
reject(error instanceof Error ? error : new Error(errorMessage(error), { cause: error }))
|
||||
}
|
||||
|
||||
function onClose(code: number, reason: Buffer) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,17 @@ describe("plugin.openai.ws", () => {
|
|||
).rejects.toThrow("WebSocket connect timed out")
|
||||
})
|
||||
|
||||
test("surfaces websocket upgrade rejection messages", async () => {
|
||||
await using server = await createRejectingWebSocketServer(() => {})
|
||||
|
||||
await expect(
|
||||
OpenAIWebSocket.connectResponsesWebSocket({
|
||||
url: server.wsUrl,
|
||||
headers: {},
|
||||
}),
|
||||
).rejects.toThrow("Expected 101 status code")
|
||||
})
|
||||
|
||||
test("enforces websocket send idle timeout", async () => {
|
||||
const socket = new (class extends EventEmitter {
|
||||
send(_data: string, _callback: (error?: Error) => void) {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue