What version of the Codex App are you using (From “About Codex” dialog)?
codex-cli 0.146.0 on MAC and 1.2026.209 (12) Android App
What subscription do you have?
Free
What platform is your computer?
MAC for codex running remote-control and Android for ChatGPT app
What issue are you seeing?
[Android] "Authorize this phone" loops forever after ChatGPT app reinstall — web auth completes, app never consumes the approval, host receives zero pairing claims
Environment
- Phone: Android, ChatGPT app (installed fresh today, 2026-07-30, latest Play Store build)
- Host: macOS 26.5.1 (Apple Silicon M4), Codex CLI 0.146.0 (standalone),
codex remote-control daemon, auth_mode = chatgpt, single personal account (no workspace/SSO)
- Host connectivity: remote-control websocket to
wss://chatgpt.com/backend-api/wham/remote/control/server shows Connected throughout (server_id srv_e_6a6b..., registered as host name)
Summary
After uninstalling and reinstalling the ChatGPT Android app (done to fix the Remote entry missing from the sidebar), the device-authorization step loops indefinitely:
- ChatGPT app → Settings → Remote control → screen says "Allow this phone to access ChatGPT on your computer?" with an Authorize this phone button.
- Tapping it opens the browser → OpenAI sign-in → authorization dialog (shows the correct, matching account).
- Approving bounces back into the ChatGPT app — landing on the same "Authorize this phone" screen. No error is ever shown.
- Repeat forever. The pairing-code entry step is never reached; Settings → Remote control shows disconnected, no paired connections.
Before the reinstall, remote view was reachable on this phone via push notification, so the account/host/feature were provably working.
What the host logs prove
Across ~10 authorize attempts over ~2.5 hours, the host's app-server logs show remoteControl/pairing/start for each locally minted code and zero pairing-claim / device-connect events — the phone's approval never produces any backend interaction with the host. The remote-control websocket stayed Connected the whole time.
Ruled out (each verified, in order)
- Stale mobile app: full uninstall + fresh install (this is what started the loop).
- Server-side device/session state: chatgpt.com → Security → Log out of all devices, fresh sign-ins on both phone and host (
codex login). Loop unchanged.
- Host daemon state:
codex remote-control stop/start cycles, all stray app-server processes killed, clean single daemon-managed server verified via ps + socket inspection. Loop unchanged.
- Android App Links: the
tt.chatgpt.com domain was found disabled in Open-by-default supported links (plausibly reinstall fallout) and was manually enabled. Loop unchanged — and the flow does return to the app, so the callback link itself works.
- Stale app UI state: force-quit + reopen after authorize. Loop unchanged.
- Phone reboot: done. Notably, the reboot restored the missing Remote entry in the app sidebar (the original symptom that prompted the reinstall) — but the authorize loop is unchanged, from both the sidebar Remote flow and the Settings → Remote control flow. The two symptoms evidently have different causes.
- Clock skew: phone date/time on automatic.
- Fresh pairing codes minted on the host for every attempt (all unused — flow never reaches code entry).
Separate host-side bug found while debugging (worth its own look)
When the remote-control daemon's socket is down, running any codex CLI command (including codex remote-control stop/pair) triggers the CLI's auto-boot fallback, which pkill -9s existing app-servers and boots a generic (non-daemon-managed) app-server on the control socket. Subsequent codex remote-control start then fails with:
Error: app server is running but is not managed by codex app-server daemon
…so the natural recovery commands re-break the daemon in a loop. Workaround found: kill all codex.*app-server processes, then run codex remote-control start immediately, before any other codex command. (CODEX_SSH_SKIP_APP_SERVER_BOOT=true also defuses the auto-boot.)
Expected
Approving the browser auth dialog should complete device authorization and advance the app to the pairing-code step (or paired state).
Actual
App returns to "Authorize this phone" with no error; backend never registers the device; host never sees a claim.
What steps can reproduce the bug?
After uninstalling and reinstalling the ChatGPT Android app (done to fix the Remote entry missing from the sidebar), the device-authorization step loops indefinitely:
- ChatGPT app → Settings → Remote control → screen says "Allow this phone to access ChatGPT on your computer?" with an Authorize this phone button.
- Tapping it opens the browser → OpenAI sign-in → authorization dialog (shows the correct, matching account).
- Approving bounces back into the ChatGPT app — landing on the same "Authorize this phone" screen. No error is ever shown.
- Repeat forever. The pairing-code entry step is never reached; Settings → Remote control shows disconnected, no paired connections.
What is the expected behavior?
pairing completes and shows the connected remote computer on the remote section of the ChatGPT app.
this was working but while trying to debug why the Remote selection on the ChatGPT app side bar was not showing we removed the connection and then could not recover and re-pair.
Additional information
No response
What version of the Codex App are you using (From “About Codex” dialog)?
codex-cli 0.146.0 on MAC and 1.2026.209 (12) Android App
What subscription do you have?
Free
What platform is your computer?
MAC for codex running remote-control and Android for ChatGPT app
What issue are you seeing?
[Android] "Authorize this phone" loops forever after ChatGPT app reinstall — web auth completes, app never consumes the approval, host receives zero pairing claims
Environment
codex remote-controldaemon,auth_mode = chatgpt, single personal account (no workspace/SSO)wss://chatgpt.com/backend-api/wham/remote/control/servershows Connected throughout (server_idsrv_e_6a6b..., registered as host name)Summary
After uninstalling and reinstalling the ChatGPT Android app (done to fix the Remote entry missing from the sidebar), the device-authorization step loops indefinitely:
Before the reinstall, remote view was reachable on this phone via push notification, so the account/host/feature were provably working.
What the host logs prove
Across ~10 authorize attempts over ~2.5 hours, the host's app-server logs show
remoteControl/pairing/startfor each locally minted code and zero pairing-claim / device-connect events — the phone's approval never produces any backend interaction with the host. The remote-control websocket stayed Connected the whole time.Ruled out (each verified, in order)
codex login). Loop unchanged.codex remote-control stop/startcycles, all stray app-server processes killed, clean single daemon-managed server verified viaps+ socket inspection. Loop unchanged.tt.chatgpt.comdomain was found disabled in Open-by-default supported links (plausibly reinstall fallout) and was manually enabled. Loop unchanged — and the flow does return to the app, so the callback link itself works.Separate host-side bug found while debugging (worth its own look)
When the remote-control daemon's socket is down, running any
codexCLI command (includingcodex remote-control stop/pair) triggers the CLI's auto-boot fallback, whichpkill -9s existing app-servers and boots a generic (non-daemon-managed) app-server on the control socket. Subsequentcodex remote-control startthen fails with:…so the natural recovery commands re-break the daemon in a loop. Workaround found: kill all
codex.*app-serverprocesses, then runcodex remote-control startimmediately, before any other codex command. (CODEX_SSH_SKIP_APP_SERVER_BOOT=truealso defuses the auto-boot.)Expected
Approving the browser auth dialog should complete device authorization and advance the app to the pairing-code step (or paired state).
Actual
App returns to "Authorize this phone" with no error; backend never registers the device; host never sees a claim.
What steps can reproduce the bug?
After uninstalling and reinstalling the ChatGPT Android app (done to fix the Remote entry missing from the sidebar), the device-authorization step loops indefinitely:
What is the expected behavior?
pairing completes and shows the connected remote computer on the remote section of the ChatGPT app.
this was working but while trying to debug why the Remote selection on the ChatGPT app side bar was not showing we removed the connection and then could not recover and re-pair.
Additional information
No response