Codex mobile remote connection cannot be paired again after removing device on Mac
What version of the Codex App are you using (From “About Codex” dialog)?
26.513.31313
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Darwin 25.3.0 arm64 arm
What issue are you seeing?
After accidentally removing/disconnecting my mobile device from the Codex App on macOS, I can no longer pair ChatGPT mobile with the Codex Mac host.
ChatGPT mobile still shows the old Codex host/device, but it appears disabled/offline. The Codex App on macOS does not show the phone/device as connected anymore.
When I start “Set up Codex mobile” on the Mac and scan the QR code from the phone, no new pairing is created. The mobile app keeps showing only the old disabled host.
What steps can reproduce the bug?
Feedback ID: 019e3214-83b6-7c43-a5e8-0c2783a8f988
- Have ChatGPT mobile paired with a Codex App host on macOS.
- Remove/disconnect the mobile device from the Codex App on the Mac.
- Open ChatGPT mobile.
- The old Codex host remains visible but disabled/offline.
- On macOS, start “Set up Codex mobile” again and generate a new QR code.
- Scan the QR code from the phone.
- No new pairing is created and the old disabled host remains the only visible device on mobile.
Already tried:
- Reinstalling the ChatGPT mobile app.
- Restarting Codex App on macOS.
- Generating a new QR code.
- Checking same ChatGPT account/workspace.
- Trying to reconnect from the mobile Codex view.
What is the expected behavior?
After removing a mobile device from the Codex App on macOS, I should be able to create a fresh pairing between ChatGPT mobile and the Codex Mac host.
Alternatively, the stale disabled host should be cleared/reset so the mobile app can discover or pair with the Mac again.
Additional information
The stale host remains visible on ChatGPT mobile, but the Mac-side Codex App no longer shows any connected device. This looks like a stale remote connection/device association that cannot be cleared from the mobile side.
21 Comments
also cant reconnect from cli
Same issue.
I removed it because while it was initially working, <12 hours later it prompted to "reconnect" on mobile, and the button did nothing.
Can't see a way to remove the connection from mobile and set it up again, so I'm stuck.
Exact same issue on macOS + iOS. Latest versions of codex/chatgpt app on both.
Same here, it blocks me from using Codex on mobile, is there an estimation on when it will be fixed? Thanks
Same here
Same problem on mac+iOS, latest versions. I still can see latest threads, though. But I cannot send any message, and recieve this mistake. Same situation: paired successfuly, unpaired from mac and stucked on that. QR is not halping, cannot removeold connection from iPhone
<img width="1290" height="384" alt="Image" src="https://github.com/user-attachments/assets/740eb52a-4a90-4067-9de0-902fdaac2e03" />
I personally am waiting for a fix from the dev because the only thing that can really solve the situation is this.
I’m sharing almost every day on x to make it see and notice, it’s an important bug
I've hit this too. Sad because I really want to use remote control!
Same issue here as well
Same here. In mobile ChatGPT app it's possible to edit connection, there is no way to delete it.
Same failure mode here after local stale-state cleanup, server-side environment cleanup, and ChatGPT iOS reinstall.
Environment:
26.513.313130.131.0-alpha.9Observed:
Evidence:
GET /backend-api/wham/remote/control/clients?limit=100keeps returning{"items":[],"cursor":null}.GET /backend-api/codex/remote/control/environments?limit=100initially had one stale/offline environment.DELETE /backend-api/codex/remote/control/environments/{env_id}removed it successfully.clientsremains empty and local client enrollment remains null.Conclusion:
This no longer looks like only local stale state. The desktop environment is discoverable, but the mobile QR/approval flow never creates a remote-control client enrollment.
I was able to get past this issue and properly reconnect it by:
Following this, my previous connection in the app restored to connected and the desktop app showed properly supplied access in Connections settings.
Issue is fixed!
Just install 0.132.0
It’s not fixed yet the problem is there, you’ve found a way to overcome it.
My case was a bit different, I did not see the phone connection in the Desktop App while it kept showing it in the phone. Unmarking and marking again "Allow this device to be discovered and controlled" in the Desktop App connections settings worked for me to restart the connection. Would be nice if there was a way to remove connections from the ChatGPT ios app side, it would be way more straight forward to reproduce a connection.
try run
codex remote-control stopthen run
codex remote-control startfigured it out myself by poking around.
I’m seeing what looks like the same stale Codex Mobile / Remote Control state, with one additional migration-related detail.
Summary
I migrated from a MacBook Air to a MacBook Pro using Apple Migration Assistant. I wanted to preserve my Codex projects, conversations, and local state. The migration did preserve my Codex projects/history, but Codex Mobile remote control became stuck afterward.
Current behavior:
macbook-air-2.local.macbook-air-2.localconnection.Setup failed / Couldn't finish secure setup. Try again.Environment
macbook-air-2.local26.5build25F7126.527.31326build33900.135.026.51.2026.139(26320156439)What I tried
Observed diagnostics
The desktop app-server remote-control enrollment did not complete. I saw errors like:
After additional auth attempts, I also saw:
Expected behavior
After revoking/removing a mobile device from the original Mac, the iPhone should either:
A Migration Assistant transfer should not leave two desktop clients thinking they are connected to the same iPhone while the iPhone only shows one undeletable old host identity.
Actual behavior
The stale MacBook Air / old Codex Desktop connection remains visible on iPhone, cannot be removed, cannot connect, and appears to block a fresh pairing to either the original MacBook Air or the migrated MacBook Pro.
Why this may be useful
This may be a migration-specific variant of the stale Remote Control state bug: desktop host identity, server-side environment state, and iOS mobile connection state may not recover cleanly after a Mac-to-Mac Apple Migration Assistant transfer. In this case, the migration appears to have left both Macs with a copied/duplicated local remote-control state, while the mobile app/server side still exposes only the old Air host.
Update: I was able to resolve this on the migrated MacBook Pro.
In my case, this did not look like a hard “only one device can be paired” limit. After resetting the local Codex host identity, the ChatGPT iOS app changed the stale Air entry to
MacBook-Pro.local, so the server/mobile side was able to recognize the new Mac.The actual blocker was the desktop remote-control enrollment. The useful diagnostic was:
What fixed it for me:
0.135.0to0.136.0.After MFA was enabled, the command returned:
After that, the iPhone ChatGPT app connected successfully to the existing
MacBook-Pro.localentry.One leftover: the iOS app showed two identical
MacBook-Pro.localentries after repeated pairing attempts. The Mac only had one active--remote-controlprocess, so that appears to be duplicate server-side/mobile connection records rather than two local services. I left the working one enabled and can ignore/remove the duplicate from the app UI.Adding a Linux daemon + ChatGPT mobile stale-pairing datapoint that looks very close to this issue.
Environment:
User-visible symptom:
Current local/server evidence:
Persisted local enrollment is enabled and points at the current cloud environment:
The app-server control RPC reports the daemon as connected for that same environment:
But listing controller clients for the current environment returns an empty list:
An older environment ID that the phone may have cached now returns cloud-side 404:
I also started a daemon-side pairing session through the app-server v2 RPC
remoteControl/pairing/startwithmanualCode: true. It returned a valid-lookingmanualPairingCodeand the current environment ID, but the ChatGPT mobile app did not provide a way to enter or claim that code. Polling/listing afterward still showedclients: [].Local logs also do not show a mobile-origin
thread/listor other remote JSON-RPC request arriving at the host after the failed mobile connection attempt. That suggests the request is not reaching the host; the failure boundary is before host-side request processing, likely in mobile/account/cloud association for the stale host/environment.This is not a 409 case at the moment: the current Linux daemon environment is connected. The broken state is closer to: mobile still displays a stale host record, while the currently connected environment has no authorized controller client and there is no mobile-side forget/re-pair path that can claim the fresh environment.
I was able to resolve this in my case.
The root cause turned out to be authentication rather than the pairing flow itself.
I had not enabled MFA on my ChatGPT/OpenAI account. After enabling multi-factor authentication with an authenticator app, signing in again, and restarting the remote control setup, pairing completed successfully.
If you're seeing errors such as:
HTTP 403 Forbidden{"detail":"Multi-factor authentication required"}401 Unauthorizedtoken_invalidatedI recommend enabling MFA (Authenticator app), signing back into Codex/ChatGPT, and trying the pairing process again.
Hopefully this helps someone else running into the same issue.