Windows Remote: QR pairing succeeds but Android clients cannot establish session (`nextConnectionCount=0`) on 26.818.31338
What version of the Codex App are you using?
26.818.31338
The app was updated through Codex on the morning of 2026-08-21. No further update is currently offered.
Platform
Windows host (exact Windows edition/build not captured in this report) with ChatGPT/Codex Desktop.
Remote clients tested:
- Android phone
- Android tablet
Both devices are signed into the same ChatGPT account as the Windows host.
What issue are you seeing?
Codex Remote pairing appears to succeed, but neither Android device can establish a usable Remote Control session with the Windows host.
The desktop has shown the error:
Cannot connect at this time. Please ensure only one ChatGPT/Codex instance is running.
After a full Windows restart, the problem remains.
The Windows app can generate a valid QR code. The Android device scans/accepts the QR and the device appears in the desktop's authorized-device list, but attempting to connect from Android fails. The Android Remote screen can see the Windows computer, but then reports that it cannot connect / to make sure the desktop app is open.
This affects two different Android devices, not just one.
Steps to reproduce
- Open Codex Desktop on Windows
26.818.31338. - Enable Remote / Control this computer.
- Generate a new QR code.
- Scan the QR code from ChatGPT on Android.
- Pairing/authorization appears to complete and the device is listed on the Windows host.
- From Android Remote, select the Windows host.
- Connection fails instead of opening the Remote session.
- Repeat with a second Android device: same result.
Expected behavior
After successful QR pairing and authorization, the Android Remote client should connect to the Windows Codex host and allow access to the remote Codex session.
Actual behavior
The host is discoverable and pairing works, but no live Remote connection is established.
Relevant sanitized desktop log evidence
The local app-server itself starts and connects normally:
[AppServerConnection] ... currentState=connecting ... hasConnection=true ... next=connected ... transport=stdio
The Remote client list request succeeds:
method=remoteControl/client/list
errorCode=null
Starting QR pairing also succeeds:
method=remoteControl/pairing/start
errorCode=null
However, after pairing, the Windows desktop repeatedly refreshes Remote Control with zero connections:
[remote-connections/window-context] refresh_remote_control_started previousConnectionCount=0
[remote-connections/window-context] refresh_remote_control_completed autoConnectConnectionCount=0 nextConnectionCount=0 previousConnectionCount=0
This repeats continuously while Android is attempting to connect.
No 401, 403, 409, explicit MFA failure, or explicit networking error was found in the relevant captured log section.
Troubleshooting already completed
- Full Windows restart
- Codex Desktop updated through the app; no newer update currently offered
- MFA / two-factor authentication confirmed enabled
- Android device access revoked and re-paired with a fresh QR code
- Fresh QR code successfully scanned/accepted
- Tested from two separate Android devices
- Tested with the tablet disconnected from USB
- Tested normal Wi-Fi
- Tested the Windows laptop on a completely different network using a phone hotspot
- Same failure on the hotspot, making the normal router/Wi-Fi unlikely to be the cause
The issue persists after all of the above.
Why this may be distinct from related reports
This is not a case where Remote enrollment never reaches the QR step: QR generation and remoteControl/pairing/start succeed.
It is also not yet the same symptom as a paired client that loads Remote but then fails to load tasks. In this case, the Android clients cannot establish the live Remote session at all, and the Windows log remains at nextConnectionCount=0.
Potentially related issues include:
- #39815 — Windows host pairs with Android but conversations/tasks fail later
- #37925 — Android pairing failures / connection count remains zero after device removal
- #30372 — Windows Remote error mentioning only one Codex instance
- #34815 — Windows Remote regression after an app update
Privacy
The log excerpts above are intentionally sanitized. No Windows username, account ID, tokens, cookies, device IDs, QR contents, or authentication material are included.
If maintainers need additional targeted diagnostics, I can provide further sanitized log excerpts and timestamps.
14 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Same failure on a macOS host (ChatGPT desktop 26.818.31338), and I can add the server-side piece this issue is missing:
RUST_LOG=codex_app_server_transport=traceon the publisher shows the Android client does reach the app-server and completesinitializesuccessfully — then closes the connection ~250 ms later without sending any further RPC and without any error. So pairing works, routing works, the server answers correctly, and the client walks away.Representative trace (one of 22+ identical attempts on 2026-08-21, times UTC):
One attempt closed so fast the server logged
dropping message for disconnected connection— the client vanished before the response was even delivered. Meanwhile a Codex Desktop 26.810.52044 (Windows) controller session worked normally through the same publisher at the same time (getAuthStatus,thread/list,process/spawn), so the enrollment, account, relay path, and publisher are all healthy.Ruled out on my side (identical failure in every combination):
remoteControl/pairing/startsucceeds__slingshot_backend_initialize__session initializes normallyRegression window: worked daily until 2026-08-18, broke ~2026-08-19 with no local changes. Given #39815 shows
/wham/tasks/listreturning 503 in the same window, this looks like a backend/Android-side regression on the wham remote-control path rather than anything host-side.Publisher identifiers if it helps locate server logs:
server_id=srv_e_6a2d04ce9e3c832ca616b5e33a3a90c7,environment_id=env_e_6a2d04ce9e30832cb4f8bad051a4b7e7, installationdb42a3da-99f9-4fa8-8a89-bba3da9fff75, Android attempts 2026-08-21 05:14–05:22 UTC. Happy to provide full traces.I can reproduce a closely related Windows/Android Remote failure on Codex Desktop
26.818.31338, with a useful A/B control that may help isolate the fault.A/B results
Same ChatGPT account and same Android client:
So the affected Windows host is reachable through Remote from iPadOS, while the same Android client can successfully use Remote against a different Windows host. This argues against a general Android account/network problem or a generally broken Windows Remote host.
Desktop version
Both Windows hosts were brought to the same ChatGPT/Codex Desktop version:
26.818.31338The failure persisted only on Host A after the versions matched.
Pairing / authorization behavior on affected Host A
Host-state reset already tested on affected Host A
After fully quitting ChatGPT Desktop and backing up
~/.codex, I tested a targeted Remote reset:remote_control_enrollmentsinstate_5.sqlite.installation_id.electron-local-remote-control-installation-idandelectron-local-remote-control-environment-idfrom.codex-global-state.json.remote_control_enrollmentsagain and re-paired with a fresh QR code.Local load check
The affected host has only about 249 session/rollout files (about 1.4 GB total).
codex.exewas around 167 MB working set during the check, so this does not look like the very-large-thread-count timeout case.Why this may be useful
The strongest discriminator is:
This suggests a host-specific Android Remote control-plane/session mapping issue (or Android-specific host/environment state) rather than simple pairing failure, desktop-offline state, or a general transport/network failure.
No account IDs, tokens, QR contents, environment IDs, or private project data are included here. I can provide additional sanitized diagnostics if maintainers identify a specific log or Remote endpoint/state to inspect.
I can reproduce the same Windows/Android Remote failure, and I have one additional diagnostic that may help narrow the failure stage.
Environment
26.818.2872.0to26.818.3698.0Important live-trace result
I monitored the Windows Remote/app-server logs live while pressing Retry on Android (2026-08-21 ~08:47:31–08:48:45 UTC).
In this case, the Android connection attempt did not reach the PC Remote/app-server layer at all:
attach401,403,409, timeout, ID mismatch, or disconnect associated with the attemptThe traffic during the retry window was only local
isRemoteHost=falseactivity.At the same time, read-only backend state showed:
online=true,busy=falseSo the Android -> backend path appears alive, and the Windows host is registered online, but the attach request is not being delivered to the host.
There was an earlier startup/update event where the new app-server briefly hit
409 Conflict — Remote app server already online, but after restarting the desktop app only one app-server remained, Remote reportedconnected, and no further 409s occurred. The Android failure still persisted after that cleanup.Additional troubleshooting already tried:
This looks consistent with a stale host/presence mapping or control-plane/relay routing problem between the Android client and the currently-online Windows environment. It may be a slightly different failure mode from cases where Android reaches
initializeand then disconnects immediately: here the retry produced no host-side attach/initialize activity at all.I can provide additional sanitized timestamps/log excerpts if maintainers want a specific Remote endpoint or state checked.
I am experiencing the same issue on Windows 10 with an Android client. Pairing succeeds, both devices are visible in their respective connection settings, but Android cannot establish the Remote session.
Environment:
OpenAI.Codex 26.818.3698.0My desktop logs contain additional backend evidence:
Only one local
codex.exeapp-server process was running when this occurred.Feedback/session ID:
Request ID:
The issue persists after restarting both applications, signing out and signing in again, revoking and recreating the QR pairing, switching networks, and verifying DNS/TCP 443 connectivity and the absence of a WinHTTP proxy.
The HTTP 409 response suggests that the backend retains a stale Remote app-server registration/session and rejects the current Windows host as already online.
Independent macOS + Samsung/Android reproduction matching the post-pairing transport failure described here.
Environment
26.6.2(25G83)26.818.22352(bundle6872)SM-S938BObserved behaviour
Failed to connect to ChatGPT desktop. Make sure ChatGPT desktop is open and try again.initializerequest.initializeis processed, but the Android Remote transport closes within the same second without progressing to a usable task/session request.Troubleshooting completed
The result is identical over both networks. Because QR enrolment succeeds and the Android request reaches and initialises against the Mac before immediately disconnecting, this does not appear to be a local-network, firewall, sleeping-host, or “desktop app not open” problem.
This appears consistent with an Android Remote client or backend control-plane/relay regression occurring after successful pairing and host routing.
Privacy
Account/workspace identifiers, installation/server/environment IDs, QR contents, IP addresses, local paths, task contents, and raw logs are intentionally omitted. Sanitised timestamps or targeted log events can be supplied if a maintainer requests them.
Additional reproduction from another affected Windows + Android user. This appears to match the total Remote-connectivity failure in this issue, with a separate longstanding desktop→mobile sync problem.
Current blocking regression
This is the primary issue and is currently blocking all remote Codex work for the user.
Separate pre-existing sync symptom
This existed before the current total connection failure:
The Android Remote UI also shows two entries for the same Windows host name, but those duplicate host pills have existed for a while and did not begin with today's regression, so they may be unrelated/stale registration state rather than the trigger.
Sanitized screenshots of the exact Android Looking for ChatGPT desktop… → Failed to connect to ChatGPT desktop sequence are available if maintainers need them. The user is experiencing significant productivity impact because Remote access is part of their normal workflow away from the PC.
Please prioritize the total Android→Windows Remote connection regression separately from the older thread/project indexing problem.
Confirming the same issue on Windows with a newer desktop build: Codex Desktop 26.818.4152.0.
Android displays “Transport unavailable” when connecting to the Windows host. Troubleshooting already completed:
Sanitized Windows-side checks after reinstall:
PRAGMA quick_check(ok).remoteControl/pairing/startcompletes witherrorCode=null.remoteControl/client/listrequests complete witherrorCode=null.The Windows host can also resolve and reach the ChatGPT relay endpoint over TCP 443. This appears to be the same post-pairing live-session failure described here, and confirms that it still reproduces on desktop build 26.818.4152.0.
A verified workaround restored Remote on the affected Windows host:
Reinstalling the desktop/mobile apps, repeatedly scanning new QR codes, and resetting local
.codex/database state did not fix the issue. The full 15-minute idle period was the step that made the recovery succeed.A stale server-side Remote session or registration that needed time to expire would fit the symptoms, but that is only a hypothesis—not a confirmed root cause.
Codex Remote Control incident report
Report type: public, fully redacted
Title: Codex Remote Control suddenly became offline on Windows and Android can no longer pair
Captured: 2026-08-22T10:54:27+09:00 / 2026-08-22T01:54:27+00:00
Summary
Codex Remote Control worked immediately before the incident. It then became red/offline in ChatGPT for Android. The Windows Codex Desktop app remains healthy, local threads open normally, and local work continues. Remote Control remains enabled and the Windows host has a valid local enrollment. The current host Remote WebSocket is connected, but Android Remote connections fail to become usable and fresh QR pairing does not complete.
This evidence strongly isolates the failure to the Android/controller-to-Remote-session path, controller enrollment, or server-side Remote relay/session state. It does not support "Codex is not running," "app-server is absent," or a general PC network outage.
Environment
C:\Program Files\WindowsApps\OpenAI.Codex_26.818.2872.0_x64__2p2nqsd0c76g0%USERPROFILE%\.codexConfirmed behavior
codex.exe -c features.code_mode_host=true app-server --analytics-default-enabled.codex remote-control startreturns:codex app-server daemon lifecycle is only supported on Unix platforms.Host and Remote evidence
03_PROCESS_TREE.txt.state_5.sqlitecontains one enabled Remote host enrollment for the Codex Desktop client. Account/server/environment identifiers are hashed in the evidence set.Live diagnostic read observed Connecting -> Connected at 2026-08-22 10:45:14 JST / 01:45:14 UTC; the connection to wss://chatgpt.com/backend-api/wham/remote/control/server succeeded..initializeand oncethread/list; many other connections closed in the same second, sometimes before an initialization response could be delivered.Network evidence
chatgpt.comandapi.openai.com.Windows event evidence
Diagnosis
Root-cause confidence: MEDIUM-HIGH for Remote controller/relay/session-path regression; LOW for exact component.
The Windows host is enrolled, enabled, online, and connected to the Remote relay. Local Codex and app-server operation are normal. Android-originated Remote transports reach the host but close during or just after initialization, and new pairing does not restore a usable controller session. This is most consistent with an Android Remote client regression, a server-side relay/controller-enrollment/session-state regression, or an incompatibility between the current Remote client and app-server protocol. The exact boundary cannot be proven from local host logs alone.
Separate stale rollout-path warnings exist for three old thread records, but local thread listing works and the host is red/offline before a specific thread is opened. Those warnings are not sufficient to explain the Remote-host availability failure.
Requested OpenAI action
Please investigate the server-side Codex Remote relay, controller enrollment, host enrollment, and Remote session state.
If necessary, reset only the Remote-related server-side state.
Do NOT delete or reset Codex threads, tasks, projects, authentication, or local work.
Please also inspect why
codex_chatgpt_android_remoteconnections close during or immediately afterinitialize, and why a fresh QR flow does not yield a usable Android controller while the host WebSocket remains Connected.Local safety statement
I can reproduce this on a Windows host, and the local app-server log provides a before/after comparison that corroborates the Android-side disconnect reported above.
Environment
26200.916826.818.3133826.818.3698.00.149.0-alpha.41.2026.223on Android 16Reproduction after a clean restart
I fully quit the desktop app and its Codex processes, relaunched it, revoked the Android authorization, and paired again with a fresh QR code. Pairing succeeded, the Android device appeared in the desktop's authorized-device list, and the Android app could discover the host. Selecting the host still failed.
The host-side Remote relay was connected. Each Android attempt reached the app-server and sent
initialize, but the transport closed immediately afterward without any subsequent RPC from that connection ID.Representative sanitized trace, UTC:
There were eight consecutive attempts (
ConnectionId(2)throughConnectionId(9)). Every connection closed 0-526 ms afterinitialize. None sentthread/list,config/read, or any other post-initialize RPC. No401,403,409, or explicit host-side transport/authentication error appeared in the fresh test window.Before/after control on the same host
The same host log shows a previously working Android Remote session on 2026-08-18. That client identified itself as
codex_chatgpt_android_remote, initialized successfully, and then continued normally:This narrows the current failure to the stage after pairing, discovery, relay routing, and successful delivery of
initialize, but before the Android client begins normal app-server RPCs. It also distinguishes this case from a largethread/listresponse failure because the failing client never requeststhread/list.The excerpts are sanitized. No account, server, environment, installation, device, token, hostname, username, local path, QR, or project identifiers are included. I can provide additional targeted sanitized trace data if maintainers specify what they need.
Resolution update
Resolved after updating the Windows AppX package to
26.818.5229.0(internal desktop client26.818.41509).On the same host and Android client, the app-server now proceeds normally through:
The immediate post-
initializetransport close no longer occurs. This strongly suggests a fix in the newer desktop package or a concurrent backend change; I cannot distinguish those two possibilities from host-side logs alone.Seconding the recovery sequence reported above. On the affected Windows host, I used Windows Settings > Apps > Installed apps > ChatGPT/Codex > Advanced options > Reset to perform a full Windows app reset. I then left the desktop app closed for approximately 15 minutes, reopened it, signed back into the same ChatGPT account, re-enabled Remote, and established a fresh mobile connection. Android then connected successfully and no longer displayed “Transport unavailable.”
Before this, reinstalling both apps, leaving the Android beta, and repeating the pairing flow had not resolved the problem. The successful recovery therefore followed this sequence: full Windows app reset → approximately 15-minute idle period → fresh authentication → new Remote connection.
I cannot isolate which step was causal or confirm that server-side state expired during the wait, and I do not yet know whether the recovery will remain durable. However, this independently matches the reset/idle-period recovery pattern reported above.
Update — issue persists on Codex Desktop 26.820.71523 with captured reconnect cycle
The problem is still present on a newer Windows Codex Desktop build: 26.820.71523.
This time the reconnect event was captured in the structured
logs_2.sqlitetelemetry rather than the normal desktop text log.Current host state
26.820.71523codex.exe ... app-serverprocess was present at the time of the failure409 Conflict/Remote app server already onlineinitialize_handshake_timeoutCaptured reconnect sequence
At
2026-08-27T07:14:08Z, while Remote still reported itself asConnected, the Remote WebSocket connection worker ended:Codex immediately started reconnect attempt 1:
The status then changed:
Codex refreshed the Remote server token and reconnected successfully roughly 3 seconds later:
Immediately after reconnect, the backend sent a fresh Remote initialize request:
and Codex reported:
Later, at
2026-08-27T07:24:11Z, the host logged:Interpretation
This capture appears different from the duplicate/orphaned app-server failure mode because only one app-server process was running and there was no 409.
The failure instead looks like an intermittent Remote WebSocket/session lifecycle instability where the connection worker stops even while Codex still considers Remote
Connected, followed by an automatic reconnect and fresh Remote initialize.The underlying Codex Desktop/app-server remained functional throughout. This matches the broader pattern where local Codex work continues while the interactive mobile Remote session drops/reconnects.
Sanitized excerpts only: account IDs, installation IDs, environment/server IDs, local paths, tokens, and device identifiers have been omitted.