Revoked remote control access for a device, connections remain on ChatGPT mobile app without a way to delete, cannot pair again

Open 💬 24 comments Opened May 14, 2026 by sirmalloc

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

Version 26.513.20950 (2816)

What subscription do you have?

Pro 20x

What platform is your computer?

Darwin 25.4.0 arm64 arm

What issue are you seeing?

I paired my ChatGPT iOS app with the CLI and Desktop apps in that order. First by running 'codex remote-control' from the CLI and pairing my ChatGPT iOS app, then by launching the Codex desktop app and going through pairing with the iOS app there.

I later revoked access to my phone via the Codex desktop app. The two connections remain on my iOS app, even after deleting and re-installing. There is no way to remove them in the UI.

I attempted to re-pair the phone with the Codex desktop app by clicking 'Add' in the desktop app and having my phone scan the QR code and launch the iOS app. However, nothing happens. The existing connections show 'No workspace' and a list full of 'New chat':

<img width="645" height="1398" alt="Image" src="https://github.com/user-attachments/assets/3afa4632-0858-4d3d-815e-92a45d4e14d3" />

Clicking any chat shows a screen like this:

<img width="645" height="1398" alt="Image" src="https://github.com/user-attachments/assets/0e93db54-56dd-462c-ad20-cce3230a2227" />

As of right now the only way to use codex remotely from my phone is to setup a SSH connection. I cannot get either the desktop or CLI connection to remove or pair again.

What steps can reproduce the bug?

  1. Pair the iOS app with the Codex desktop app
  2. Revoke the pairing
  3. Attempt to pair again

What is the expected behavior?

Revoked connections would be removed from the iOS app, or provide a deletion option, re-pairing would work properly.

Additional information

_No response_

View original on GitHub ↗

24 Comments

liyawpp · 2 months ago

ditto. having same issue right now.

sirmalloc · 2 months ago

Adding to this - I was able to enroll my iPad and access the connected codex desktop and cli app just fine. I just have no way to re-enroll a previously revoked device, and no way to remove connected codex instances.

sirmalloc · 2 months ago

And one more possibly related issue on this. Attempting to enroll the desktop app to control other devices shows this:

<img width="517" height="1067" alt="Image" src="https://github.com/user-attachments/assets/b9ca93a6-c108-4015-9f4a-45be434f2633" />

'Failed to authorize remote control'

flyespresso · 2 months ago

Yeah same here, it's kind of annoying as it did load the chat titles but never made it into a thread. Then trying to re-auth has me also stuck with the machine I cant delete from the iOS app. There is no exposed way to delete a connection on the app.

Astrisle · 2 months ago

Same here, and for some reason the revoked device can still access chats lists and get status updates, but clicking in any chat would result in a 403 error

ronething · 2 months ago

I've encountered this situation too, is there a temporary workaround?

Stephen2077 · 2 months ago

Same

sirmalloc · 2 months ago

@ronething @Astrisle @flyespresso I did find a workaround for re-pairing a revoked client. You simply have to logout on the phone and log back in again (not simply logging in after a reinstall - you must log out while logged in). After doing that it requested permission to pair and showed up on the account again.

There's a workaround I found here to list and delete the connected environments, however please inspect the files and use at your own risk: https://gist.github.com/sirmalloc/fefef0b65729d9644794a3c67d1a28b9

They simply create the same headers as the desktop Codex app and issue requests that were already built in but not wired.

Pratikreddy · 2 months ago

Same issue. I'm fully unable to pair from my phone.

Im actually scared how can a company claiming to have the best coding agent...

Ok screw that do you not have a testing team 😂😂😂

gravity-clms · 2 months ago

Adding another repro from a Mac mini + iOS setup. This matches the stale/revoked mobile connection behavior, with an additional 403/thread/project access symptom.

Environment:

  • Codex Desktop 26.513.20950, build 2816 (com.openai.codex)
  • Bundled app-server / codex binary: codex-cli 0.131.0-alpha.9
  • macOS 26.4.1 (25E253), arm64
  • ChatGPT-authenticated account
  • ChatGPT iOS app updated/reinstalled today, after the Codex mobile Connections rollout

Observed behavior:

  • iOS Connections shows the desktop host as Matthews-Mac-mini.local with a spinner, then it turns red/offline after timing out.
  • iOS can detect when the desktop Codex app is offline.
  • iOS can load chat titles / chat list from the desktop connection, but opening a chat spins and then returns a 403.
  • Projects do not load from iOS.
  • Deleting/reinstalling the iOS app does not remove the stale desktop connection.
  • Trying to add/re-pair again just returns to the same non-working connection screen. There is no visible way in iOS to delete/remove the stale connection.

Local desktop evidence:

  • The desktop app has a row in ~/.codex/state_5.sqlite table remote_control_enrollments for the same host name.
  • Desktop logs show the relay is at least partially connected: targeted_connections=1 and __slingshot_backend_thread_list__ being sent to the remote client.
  • Around the same repro window, local logs also showed thread reads failing locally with errorCode=-32600 / thread not loaded for one stale pinned thread id. Removing that stale pinned id from ~/.codex/.codex-global-state.json fixed the local stale pinned-thread read error, but did not fix iOS remote access.
  • Clearing the local remote_control_enrollments row and restarting Codex did not resolve the stale iOS connection behavior. The desktop re-enrolled, but iOS still showed/used the broken connection state.

Expected:

  • iOS should either reconnect cleanly to the desktop host, or expose a way to remove/revoke the stale connection and complete a fresh pairing.

Actual:

  • The connection is stuck in a half-authorized state: mobile can see some metadata/status, but thread/project access fails with 403 and the connection eventually marks itself offline.

This feels related to stale server-side mobile/desktop connection state rather than only local desktop state, because local enrollment reset + iOS reinstall did not remove the broken connection from the mobile app.

sirmalloc · 2 months ago

@gravity-clms I've had success getting it working again after logging out of the mobile app and logging back in. Doing a logout clears some persistent state (likely shared keychain) that deleting the app won't even get rid of.

Edit: For clarity - just deleting the app, installing it again, then logging in is not enough. You must logout while logged in.

ronething · 2 months ago
@gravity-clms I've had success getting it working again after logging out of the mobile app and logging back in. Doing a logout clears some persistent state (likely shared keychain) that deleting the app won't even get rid of.

Same here, uninstalling the app doesn't solve the problem, but logging out does.

damtt · 2 months ago
fmnisme · 2 months ago

I am seeing the same stale remote-control host state after revoking the pairing from Codex Desktop.

Environment/context:

  • Host: Codex Desktop on macOS
  • Client: ChatGPT iOS Codex mobile / remote control
  • The Mac-side Codex App no longer lists any devices under Settings > Connections > Control this Mac (Devices that can control this Mac is empty).
  • Allow other devices to connect is still enabled on the Mac.
  • The iOS ChatGPT app still shows the old Codex Desktop / Mac connection as connected.
  • Opening a thread through the stale Mac connection fails with a 403.

Observed error on iOS:

加载消息时出错:你的请求出现问题。 (403, 685fab4a-ed58-4020-ad87-058baa89fb31)

Additional observations:

  • Reinstalling the iOS ChatGPT app does not clear the stale connection.
  • The stale Codex Desktop / Mac entry remains visible in ChatGPT iOS under Codex > Connections.
  • The mobile UI appears to allow toggling the stale connection, but there does not seem to be a reliable “forget/remove this host” path that fully clears it from the account/relay state.

Expected behavior:

  • Revoking authorization from Codex Desktop should either remove the host from ChatGPT iOS, mark it as revoked, or expose a working Forget/remove host action on iOS.
  • Re-pairing should not be blocked by the stale revoked host record.

This looks like the mobile/relay-side host list is not being invalidated after Mac-side authorization removal.

sirmalloc · 2 months ago

@fmnisme Instead of reinstalling the app and logging in again, try logging out of the app using the logout option and then logging in again. This was the only thing that worked for me, even deleting / reinstalling / logging in again didn't fix it. You have to actually do a logout.

fmnisme · 2 months ago

@sirmalloc Update: signing out and signing back in fixed the stale connection state for me.

After re-login, I was able to use Codex mobile remote control again / re-pair successfully. So this may be a workable temporary workaround for this issue.

techtaka-yongjip · 2 months ago

I am seeing what looks like the same issue, with one additional detail: the stale connection was created after accidentally pairing Codex Mobile with the wrong Mac.

Environment:

  • Codex Desktop: Version 26.513.31313 (2867)
  • Subscription: Enterprise
  • Desktop platform: macOS 26.5
  • Mobile platform: iOS 26.5
  • ChatGPT for iOS: 1.2026.123 (25565698938)

Scenario:

  1. I use Codex Desktop on two Mac laptops.
  2. I intended to connect Codex Mobile to Laptop A, but accidentally connected it to Laptop B.
  3. I revoked the permission/connection from Laptop B.
  4. I signed out from all devices.
  5. In ChatGPT for iOS, under Codex > Connections, the old Codex Desktop entry remains, shown as something like my-macbook-pro-16.local.
  6. I cannot remove that existing Codex Desktop configuration.
  7. When I try to connect to Laptop A by scanning the QR code shown in Laptop A’s Codex app, nothing happens.

Expected:

  • I should be able to remove the stale/wrong Codex Desktop connection from mobile, or
  • scanning the QR code from Laptop A should replace/add the intended connection, or
  • the app should show a clear error explaining why pairing cannot proceed.

Actual:

  • The stale/wrong desktop connection remains stuck in ChatGPT for iOS.
  • There appears to be no mobile-side delete/reset option.
  • QR re-pairing with the intended Mac silently does nothing.

This appears related to #23078, #22781, and #23090 as well.

fiigmnt · 2 months ago

I am currently experiencing this same issue. tried using codex cli - created a new connection using same hostname and also won't resolve.

unable to fully delete connections on the iOS app unless they are connections I created using the app (ssh).

Ideally - you could remove connections on the iOS app which would reset the auth state and then be able to reconnect via QR code again.

kucats · 2 months ago

signing out and signing in on iphone app worked, still I do not see the approved iphone in the mac-side (which is concerning if I were in enterprise environment) but able to connect.

Snailflyer · 2 months ago

This looks like a lifecycle-state bug rather than only a pairing UI bug.

A revoked or stale connection needs an explicit server-side terminal state, not just removal from one local desktop table or one mobile install. The mobile UI is showing that some account-level binding still exists: it can list metadata/status, but thread access fails with 403 and re-pairing gets routed back into the stale entry.

The product needs a per-connection "forget this host/device" action with a visible receipt: connection id, host/device label, revoked_at, and whether relay/account state was removed. Otherwise users cannot tell whether they revoked the phone, revoked the desktop, removed only local state, or left a stale server-side binding behind.

artemyarmoliuk · 2 months ago

the same

joaomantovani · 2 months ago

Same, doing the login/logout did not solve the problem. Also, I remove the computer connection and now I'm stuck because it's still showing the in the app connection while it does not exists anymore

otarza · 1 month ago

Same issue, login/logout doesn't work either.

nomasprime · 1 month ago

Yep, quite broken