Repository navigation
[버그] Codex App 연동 시 WebSocket 비활성 프록시가 HTTP 426을 반환합니다 #324
Description
Activity
lidge-jun commented
on Jul 23, 2026 OwnerMore actionsThis is intended behavior in the current design, though the UX could be clearer.
Why the 426 happens:
OpenCodex defaults to
websockets: false. When the Codex App or runtime attempts a Responses WebSocket connection, the proxy correctly rejects it with HTTP 426 Upgrade Required. The Codex client is expected to fall back to HTTP streaming, which works through the proxy without issues.Is functionality blocked?
The critical question is whether the 426 actually prevents the Codex App from working, or whether it's only a
codex doctorwarning:- If Codex App falls back to HTTP and works normally, this is a cosmetic diagnostic warning. The
codex doctoroutput could be improved to explain that a local proxy withwebsockets: falseis expected to return 426 and that HTTP fallback is the normal path. - If specific features (streaming resumption, reconnection) require WebSocket and fail without fallback, the fix is
"websockets": truein your OpenCodex config.
Recommendation:
- Try adding
"websockets": trueto your OpenCodex config and verify whether it resolves the doctor warning. - If the App works fine despite the 426, this is a docs/doctor-message improvement rather than a proxy bug.
Could you confirm whether actual Codex App functionality is broken (requests fail, streaming stops) or whether this is only the
codex doctordiagnostic showing a warning?- If Codex App falls back to HTTP and works normally, this is a cosmetic diagnostic warning. The
jhste102lab commented
on Jul 23, 2026 ContributorAuthorMore actionsThanks for the clarification. I rechecked the evidence and agree that, in my current environment, the HTTP 426 appears to be a
codex doctordiagnostic rather than a demonstrated functionality failure.- I do not currently have a reproducible Codex App request failure, stream termination, or reconnection failure attributable to the WebSocket warning.
- Valid Codex App tasks continued to run while the warning was present, so I cannot claim that
websockets: falsecaused the observed task-resume symptom. - The
no rollout foundsymptom I initially investigated is separate: the Codex Desktop log shows In-App Browser session IDs being passed tothread/resumeas remote-SSH thread IDs. I reported that separately in openai/codex#34894.
I have not changed the setting to
"websockets": true, because I do not currently have an actual App failure against which to validate it.Please treat this issue as a documentation/diagnostic-UX suggestion rather than a confirmed proxy defect: it would help if the integration documentation and/or diagnostic output explained that HTTP 426 is expected when OpenCodex intentionally uses HTTP streaming fallback. Thank you.
- added a commit that references this issue
on Jul 23, 2026 Closing as documentation-covered, per the discussion above and a fresh docs check.
As established: HTTP 426 from a proxy with
websockets: falseis the intended design — the Codex client falls back to HTTP/SSE streaming and no functionality is lost. You confirmed no reproducible App failure was attributable to the warning.The current documentation now covers this explicitly:
- the Codex App models guide explains that a disabled-WebSocket proxy returns 426 and that HTTP/SSE fallback is the normal path;
- the architecture reference documents the 426 upgrade-rejection behavior.
The clearer
codex doctorwording suggestion is an upstream (openai/codex) diagnostic-UX improvement rather than an OpenCodex change — your separate upstream report is the right channel for that. Thanks for the careful investigation and for narrowing this to the diagnostic surface.- added a commit that references this issue
on Sep 17, 2026
요약
OpenCodex를 실행하면 Codex 설정에 로컬 프록시 주소가 자동 주입됩니다.
그런데 현재 OpenCodex 설정에서
websockets가false여서, Codex App/Codex 런타임이 Responses WebSocket 연결을 시도할 때 아래 오류가 발생합니다.Codex 진단에서는 WebSocket 연결 실패 및 HTTPS fallback 가능 상태로 표시됩니다. 프록시가 자동으로 주입되는 기본 구성이라면, Codex App에서 스트리밍·재개 등 WebSocket 경로가 필요한 기능과 호환되지 않을 가능성이 있습니다.
재현 절차
ocx start또는 자동 시작)openai_base_url = "http://127.0.0.1:10100/v1"을 주입한 상태를 확인합니다.websockets: false상태로 Codex App 또는 Codex 런타임을 실행합니다.기대 동작
다음 중 하나가 필요합니다.
현재처럼 프록시 주소만 자동 주입되고 WebSocket 요청이 426으로 실패하면, 사용자는 Codex App의 연결/재개 문제로 오해하기 쉽습니다.
환경
2.7.3326.715.10079.0확인 사항