In-app browser port forwarding failed for localhost dev server until Codex restart

Open 💬 1 comment Opened Jul 3, 2026 by dobbobalina2

Feedback ID: 019f2899-ad3d-7a02-96e3-b51daadcaf34

Summary

The in-app browser localhost forwarding flow failed for a dev server in a VPS-backed Codex session. The browser opened a generated localhost proxy URL, but requests reset because the target dev server was not actually listening. Attempts to start the dev server from Codex initially failed with listen EPERM on localhost ports.

What happened

  1. Codex attempted to start a Next.js dev server on localhost:3000.
  2. The shell failed with:

``text
Error: listen EPERM: operation not permitted 127.0.0.1:3000
``

  1. The in-app browser opened a generated URL such as http://localhost:<proxy-port>/.
  2. Chrome showed:

``text
ERR_CONNECTION_RESET
``

Expected behavior

Codex should be able to start a dev server in the VPS session and expose it through the in-app browser proxy automatically.

For auth-backed apps, the localhost host/port can matter, so localhost:3000 should work reliably when required by OAuth/Auth0 callback configuration.

Actual behavior

The dev server could not bind before restarting Codex, and the browser proxy reset because there was no live target listener.

Suggested improvements

  • Detect listen EPERM during dev-server startup and surface a clear recovery path.
  • Make VPS-backed port binding work consistently for Codex-started dev servers.
  • Have the browser proxy show a clearer “target server not running” state instead of only ERR_CONNECTION_RESET.
  • Document or preserve callback-sensitive localhost mappings such as localhost:3000.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗