Codex Mobile setup: Allow button is a no-op because app-server rejects `remoteControl/enable`

Open 💬 3 comments Opened Jun 5, 2026 by anna-sweettyy

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

Codex CLI/runtime: codex-cli 0.137.0 Global npm package: @openai/codex@0.137.0 Codex App version: unknown / not shown in this report

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Microsoft Windows 11, Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

In Codex App on Windows 11, the Codex Mobile setup screen asks:

"Allow devices to control this computer?"

When I click the "Allow" button, the button visually clicks, but nothing happens. The setup screen does not progress, no QR/pairing flow appears, and no visible error is shown.

I checked the local Codex desktop logs after clicking the button. The UI appears to call remote-control methods, but the app-server rejects them as unknown methods/variants.

Relevant log lines:

2026-06-05T01:23:28.697Z error [electron-message-handler] Request failed ... method=remoteControl/status/read ...
Invalid request: unknown variant remoteControl/status/read, expected one of ...

2026-06-05T01:23:28.697Z error [electron-message-handler] Failed to read remote-control status

2026-06-05T01:23:52.882Z error [electron-message-handler] Request failed ... method=remoteControl/enable ...
Invalid request: unknown variant remoteControl/enable, expected one of ...

2026-06-05T01:23:52.883Z error [electron-message-handler] Failed to sync local remote control enablement

This looks like another desktop UI / app-server protocol mismatch: the Codex Mobile setup UI expects remoteControl/* methods, but the running app-server does not support them.

What steps can reproduce the bug?

  1. Open Codex App on Windows 11.
  2. Open Codex Mobile setup.
  3. On the screen "Allow devices to control this computer?", click "Allow".
  4. Observe that the button clicks visually, but the screen does not advance.
  5. Check Codex desktop logs and observe remoteControl/status/read and remoteControl/enable rejected as unknown variants.

What is the expected behavior?

Clicking "Allow" should enable remote/mobile control and advance the setup flow, or show a user-facing error if remote control cannot be enabled.

Additional information

Related but not exact:

  • #22733: Android waits for desktop / no incoming prompt
  • #25194: Windows app crashes when clicking Connect computer
  • #25322: stale remote-control listener / cached binary issue

My case is different because the setup screen is visible and the "Allow" button is clickable, but it becomes a no-op because the running app-server rejects remoteControl/status/read and remoteControl/enable.

View original on GitHub ↗

3 Comments

minghsuan-dev · 2 months ago

I am experiencing a very similar issue on Windows.

Codex Remote Control cannot be enabled. The app repeatedly shows:

  • “Unable to start Remote Control. Please try again.”
  • “Unable to check security requirements. Please try again.”

I am successfully signed in with my ChatGPT Plus account. I have already updated, uninstalled and reinstalled Codex, restarted Windows, signed out and signed in again, and tested another network. No QR code or pairing code is generated.

Earlier, ChatGPT login showed Windows socket error 10013, but login is now successful. Remote Control still fails.

Feedback ID:
no-active-thread-019f099d-0b3e-7c52-b885-173bd595a732

v89cv6mgby-dotcom · 1 month ago

I can reproduce a very similar issue on Windows 11 Home.

Environment:

  • Codex Desktop 26.623.70822 (Microsoft Store)
  • ChatGPT Plus
  • Latest ChatGPT app on iPhone (iOS)

Steps:

  1. The iPhone successfully discovers my Windows desktop.
  2. The desktop shows the "Allow this device to control this computer" dialog.
  3. After clicking "Allow", it immediately fails.

The error shown is:

"Could not enable remote control. Please ensure only one instance of Codex is running."

Additional information:

  • Only one Codex instance is running (verified in Task Manager).
  • Running as Administrator does not help.
  • Rebooting, reinstalling Codex, and signing out/in do not resolve the issue.
  • Both devices use the same ChatGPT Plus account.

This appears to be related to remoteControl/enable being rejected.

handlf · 1 month ago

Confirmed on Windows 11 — same root cause, and here is a Windows workaround that makes the fix persistent.

Environment

  • Windows 11 Pro, Codex Desktop (Microsoft Store package OpenAI.Codex_26.623.13972.0_x64)
  • Local proxy: v2rayN, HTTP proxy at http://127.0.0.1:10808 (system proxy is set and the main Codex chat works fine through it)

Symptoms (identical to OP)

  • Toggling Allow connections in Settings → Connections fails with "Could not update remote control status"
  • The pairing QR code sometimes renders, but the phone reports "This isn't a valid remote control pairing code" — i.e. the QR is rendered locally while the backend registration never happened
  • netstat shows connections stuck in SYN_SENT (the remote-control daemon is trying to reach chatgpt.com directly, ignoring the system proxy)

Windows workaround (persistent, no manual daemon launch needed)

Instead of launching the daemon manually with env vars (macOS workaround above), set user-level environment variables so the Codex app — and the daemon it spawns — inherit them automatically on every launch:

[Environment]::SetEnvironmentVariable("HTTP_PROXY",  "http://127.0.0.1:10808", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:10808", "User")
[Environment]::SetEnvironmentVariable("NO_PROXY",    "localhost,127.0.0.1,::1", "User")

Then fully kill all Codex processes (closing the window is not enough — check with Get-Process | Where-Object {$_.ProcessName -match "codex"}) and relaunch the app:

Get-Process | Where-Object {$_.ProcessName -match "codex"} | Stop-Process -Force

After relaunch:

  • The Allow connections toggle turns on and stays on, no error banner
  • The pairing QR code is generated and accepted by the phone

Notes

  • Replace 10808 with your own local proxy port.
  • NO_PROXY matters — without it, local loopback traffic may also be routed to the proxy.
  • Side effect: these are user-wide variables, so CLI tools that honor them (git/pip/npm/curl…) will also route through the proxy. Remove with [Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, "User") (same for the other two) if needed.

Hope the daemon can respect the OS system proxy (or at least the app's own proxy settings) in a future release. 🙏