Android ChatGPT Codex mobile stuck on Waiting for desktop; environments API returns 403 type=dc while desktop daemon is connected

Open 💬 0 comments Opened Jun 7, 2026 by EricYuan1201

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

Codex App 26.602.40724 (3593); bundled CLI codex-cli 0.137.0-alpha.4; managed standalone Codex 0.137.0

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Darwin 24.6.0 arm64 arm (macOS, Apple Silicon). Desktop host: Codex App for macOS. Mobile client: ChatGPT Android 1.2026.153 on OnePlus PJA110 / Android 13 / ColorOS-family device.

What issue are you seeing?

Summary

ChatGPT Android Codex Remote Control cannot connect to a macOS Codex Desktop host. The Android app stays on Waiting for desktop... Follow the instructions in the desktop app to get connected. and repeatedly shows Something went wrong. Please try again later.

The desktop host appears online from the Codex remote-control daemon side, but the Android mobile client repeatedly receives HTTP 403 from the Codex remote-control environments endpoint.

Key evidence from Android ChatGPT telemetry

The Android ChatGPT app's local Datadog logs contain repeated network errors for this request:

GET https://android.chat.openai.com/backend-api/codex/remote/control/environments?limit=100
status_code=403
reason=cloudflare_error
response={"cf_details":"Request is not allowed. Please try again later.", "type":"dc"}
network.client.connectivity=NETWORK_WIFI
app_version_name=1.2026.153
app_version_code=2615321

The UI remains on the waiting screen after these failures.

Desktop host state

The macOS host is running Codex Desktop and remote-control daemon is connected:

{
  "mode": "daemon",
  "status": "connected",
  "environmentId": "env_e_...redacted...",
  "timedOut": false,
  "daemon": {
    "remoteControlEnabled": true,
    "managedCodexVersion": "0.137.0",
    "cliVersion": "0.137.0-alpha.4",
    "appServerVersion": "0.137.0"
  }
}

Before installing the managed standalone Codex package, remote-control start --json failed with managed standalone Codex install not found. I installed the official standalone Codex CLI and confirmed the daemon now starts successfully, but Android still fails with the same 403.

Why this looks different from the known empty-environments issue

I found related issues where the mobile app waits because the desktop daemon cannot register an online environment, often due to proxy or missing standalone install. In my case, after fixing standalone and starting the daemon with explicit proxy env vars, the daemon reports status=connected and a non-null environmentId, but the Android app still gets 403 from /backend-api/codex/remote/control/environments?limit=100.

Additional observations

  • Same ChatGPT account can use normal ChatGPT features on Android.
  • An iPad can connect to/use Codex remote control successfully with the same desktop/account setup.
  • Android network was verified as Wi-Fi and routed through a working proxy; the telemetry still reports NETWORK_WIFI when the 403 happens.
  • Desktop local stale state was reset by deleting local mobile/remote-control keys from ~/.codex/.codex-global-state.json after backing it up, then restarting remote-control. The issue still reproduced.
  • ChatGPT Android app is installed from Google Play.
  • No auth tokens, cookies, account IDs, user IDs, device IDs, or full raw logs are included here intentionally.

What steps can reproduce the bug?

  1. Open Codex Desktop on macOS and sign in.
  2. Ensure remote control daemon is running and connected:
HTTP_PROXY=http://127.0.0.1:1087 \
HTTPS_PROXY=http://127.0.0.1:1087 \
ALL_PROXY=socks5://127.0.0.1:1087 \
/Applications/Codex.app/Contents/Resources/codex remote-control start --json
  1. Confirm the daemon returns status=connected, timedOut=false, and a non-null environmentId.
  2. Open ChatGPT Android 1.2026.153.
  3. Go to Codex.
  4. Tap I have signed in on desktop / 我已在桌面端登录.
  5. Observe Android stays on Waiting for desktop and shows an error toast.
  6. Inspect Android ChatGPT telemetry/logs. The environments endpoint repeatedly returns 403 with type=dc.

I also tried:

  • Restarting ChatGPT Android.
  • Restarting Google Play services / Play Store / ChatGPT cache only, without clearing app data.
  • Rebooting the Android phone.
  • Forcing Android traffic over Wi-Fi and a working proxy.
  • Installing managed standalone Codex and restarting remote-control daemon.
  • Resetting local Codex mobile/remote-control state on macOS.

The same 403 remains reproducible.

What is the expected behavior?

The Android ChatGPT Codex mobile UI should discover the online macOS Codex Desktop environment and either show the connected desktop or present an actionable error.

If the request is rejected intentionally, the mobile UI should surface a clear reason or diagnostic code instead of staying on Waiting for desktop with a generic retry toast.

Additional information

Related issues I found while investigating:

  • #22851: remote-control daemon cannot use proxy, backend environments empty.
  • #22714 / #23112: stale remote-control host or local state.
  • #23122: Android/ColorOS QR deep link not routed to ChatGPT.
  • #22773: mobile 403/offline/stale state.

This report may be a different failure mode because the desktop daemon is connected and has a non-null environmentId, while Android's authenticated environments request returns 403 type=dc.

View original on GitHub ↗