Windows desktop app intermittently fails streamed responses behind Clash Verge Rev proxy (TLS EOF / response body decode error)

Open 💬 3 comments Opened Apr 20, 2026 by kkx9578

What version of the Codex App are you using (From “About Codex” dialog)?

26.415.4716.0

What subscription do you have?

plus

What platform is your computer?

_No response_

What issue are you seeing?

On Windows desktop, Codex intermittently fails during streamed replies when running behind Clash Verge Rev.

This is not a total connectivity failure. The app can still partially continue working and produce output, but the same session, or a newly opened window/session, may show repeated reconnects or fail before the streamed response completes.

I observed multiple failure modes during the same general setup:

  • stream disconnected before completion: IO error: peer closed connection without sending TLS close_notify
  • stream disconnected before completion: tls handshake eof
  • stream disconnected before completion: Transport error: network error: error decoding response body

In some cases, one window/session can still work while another newly opened window/session shows reconnects or stream completion failures.

What steps can reproduce the bug?

Steps to reproduce

  1. Run the Codex Windows desktop app.
  2. Use Clash Verge Rev as the local proxy.
  3. Verify the active local proxy port is 127.0.0.1:7897 (mixed-port).
  4. Launch Codex with explicit proxy environment variables:
  • HTTP_PROXY=http://127.0.0.1:7897
  • HTTPS_PROXY=http://127.0.0.1:7897
  • ALL_PROXY=socks5://127.0.0.1:7897
  1. Start a normal chat, especially one that triggers web searches or a longer streamed response.
  2. Open a new window/session and repeat.
  3. Observe intermittent reconnects and stream completion failures.

What is the expected behavior?

Expected behavior

Codex should stream the full response normally without repeated reconnects or stream completion failures.

Actual behavior

The desktop app intermittently reconnects or fails before the stream completes.

Examples shown in the UI include:

Reconnecting... 2/5
stream disconnected before completion: IO error: peer closed connection without sending TLS close_notify

Reconnecting... 3/5
stream disconnected before completion: tls handshake eof

stream disconnected before completion: Transport error: network error: error decoding response body

### Additional information

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗