codex app-server proxy hangs on WebSocket-framed initialize while direct Unix socket succeeds
Open 💬 1 comment Opened Jun 2, 2026 by bakemocho
Summary
codex app-server proxy --sock <default control socket> appears not to forward a WebSocket-framed initialize exchange even though the same WebSocket handshake and masked text frame works directly against the Unix control socket.
This is related to #23572, but this reproduction does not use Content-Length framing. It uses the framing described in codex-rs/app-server/README.md: WebSocket HTTP Upgrade followed by WebSocket frames.
Environment
- Platform: macOS / Darwin arm64
- Codex Desktop:
26.527.60818/ build3437 - Desktop-bundled
codex:codex-cli 0.136.0-alpha.2 - Standalone current
codex:codex-cli 0.135.0 codex app-server daemon version:status:runningbackend:pidmanagedCodexVersion:0.135.0cliVersion:0.136.0-alpha.2appServerVersion:0.135.0
What I tested
I sent the same minimal app-server initialize request over three transports:
- Raw Unix socket connection to the default app-server control socket.
~/.codex/packages/standalone/current/codex app-server proxy --sock <default control socket>.- Desktop-bundled
codex app-server proxy --sock <default control socket>.
For all three, the client input was:
- HTTP WebSocket Upgrade request.
- Client-masked WebSocket text frame containing:
{"id":1,"method":"initialize","params":{"clientInfo":{"name":"proxy-repro","version":"0.0.0"},"capabilities":{"experimentalApi":true,"requestAttestation":false}}}
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗