Repository navigation
Windows Remote Control gets permanently stuck in "Reconnecting..." with no way to recover remotely #31973
Description
What version of the Codex App are you using (From “About Codex” dialog)?
Codex App (Windows) ChatGPT Mobile Remote Control (QR Pairing)
What subscription do you have?
Plus
What platform is your computer?
Host Windows 11 Codex App (latest) Remote ChatGPT Mobile QR Pairing
What issue are you seeing?
Summary
After running normally for a period of time, the mobile remote client becomes permanently stuck in "Reconnecting...".
The most serious issue is that there is no way to determine whether the Windows host is still alive or to recover the remote session without physically accessing the host machine.
This issue has occurred multiple times under the same workflow.
Impact
This is a significant issue for users who operate Codex remotely.
Typical workflow:
- Windows PC stays at home running Codex.
- User controls it remotely from ChatGPT Mobile.
- User may also access ChatGPT from another computer via a web browser.
When the Remote Control enters the "Reconnecting..." state, the user completely loses access to the host and cannot determine whether the issue is:
- the Windows application,
- the Remote Control service,
- the backend session,
- or the mobile client.
If the host computer is located elsewhere, Remote Control becomes unusable until someone can physically access the machine.
What steps can reproduce the bug?
Steps to Reproduce
- Install the Codex App on a Windows PC.
- Pair ChatGPT Mobile using the QR code.
- Leave the Windows PC running at home.
- Connect to the host remotely from ChatGPT Mobile.
- Continue using Remote Control for several hours (sometimes after idle periods).
- Eventually, the mobile client becomes stuck on "Reconnecting..." indefinitely.
- Restarting the ChatGPT mobile app does not recover the session.
- Switching between Wi-Fi and LTE does not recover the session.
- The only way to recover is to physically access the Windows PC and restart the Codex application.
What is the expected behavior?
Expected Behavior
If the desktop application is still running, the remote session should automatically recover.
If automatic recovery is not possible, users should at least be able to determine the host status through diagnostics such as:
- Host Online / Offline
- Last Seen
- Last Heartbeat
- Remote WebSocket status
- Backend session status
It would also be helpful to provide recovery actions such as:
- Force Reconnect
- Restart Remote Service
- Reset Remote Session
- Re-register Host
Actual Behavior
The mobile client remains permanently stuck on:
Reconnecting...
There is no way to determine whether:
- the Windows Codex application is still running,
- the remote connection is still alive,
- the backend session has become stale,
- the pairing has become invalid,
- or the desktop application has crashed.
The user has no diagnostic information and no recovery mechanism without physical access to the host.
Additional information
Suggested Improvements
Diagnostics
Please expose the following information:
- Host Online / Offline
- Last Seen
- Last Heartbeat
- Desktop App Version
- Remote WebSocket Status
- Backend Session Status
Recovery
Please provide one or more of the following:
- Force Reconnect
- Restart Remote Service
- Reset Remote Session
- Re-register Host
These actions should be available without requiring physical access to the Windows host.
Additional Notes
- This issue has happened multiple times under the same workflow.
- Restarting the mobile application does not resolve the problem.
- Switching networks (Wi-Fi ↔ LTE) does not resolve the problem.
- The only reliable recovery method so far has been physically accessing the Windows machine and restarting the Codex application.
I would also appreciate any diagnostic logs or troubleshooting methods that users can access remotely to determine whether the host is still alive when the mobile client is stuck on "Reconnecting...".
Activity
github-actions commentedon Jul 10, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
tal-shilian commentedon Jul 11, 2026
I think i have the same problem the mobile and desktop connect to remote te server windows and alot of times its hppane stack in reconnecting.
JeffreyBai commentedon Jul 12, 2026
No, the tickets you provided described communication issues, but in my issue, the tasks totally stopped working at all. They no longer produce any outputs, which they should and commit after each step. The tasks simply freezed.
JeffreyBai commentedon Jul 12, 2026
This was not limited to a single conversation. All Codex tasks were frozen and produced no further progress, while Windows and other applications (including Claude Code Remote) continued to function normally.
LeeDoGwan commentedon Jul 13, 2026
The connection keeps dropping or becoming unstable, which is really frustrating.
2batsloverandomartifactromps-dotcom commentedon Jul 15, 2026
Adding a current Windows 11 host-side reproduction with a repeatable failure sequence. This looks like a Remote Control connection-registry/state race, not simply the desktop process being dead.
Environment:
2620026.623.13972.0and26.707.3748.026.707.9981.0Reproduction 1 — 2026-07-03, build 26.623.13972.0
The local app-server came up normally:
Remote Control refresh/enable also appeared successful:
But immediately after the refresh reported one connection, the host-scoped status read could not resolve that connection:
Reproduction 2 — 2026-07-12, build 26.707.3748.0
The same ordering occurred again:
About 12 minutes later, refresh removed the connection entirely:
The strongest signal is that
refresh_remote_control_completedreportsnextConnectionCount=1, but within 74–149 ms the app cannot look up that same host ID. The local app-server and desktop process are responsive throughout.This could explain the user-visible “Reconnecting...”/offline state: the Remote Control inventory briefly advertises a host entry that the connection registry cannot route to, then the manager remains disconnected and may later delete the entry.
Suggested recovery behavior:
I can provide additional sanitized log windows if maintainers need them.
2batsloverandomartifactromps-dotcom commentedon Jul 15, 2026
Follow-up with a later same-host incident and a source-level audit.
Environment:
26.707.9981.00.144.2Host transport timeline (2026-07-15 UTC)
There was no corresponding Windows WLAN, NetworkProfile, or System event showing a host Wi-Fi/adapter disconnect. Model-list child-process timeouts occurred in the same interval, so internal app-server load/head-of-line blocking remains relevant.
This is distinct from the desktop bootstrap route miss in my previous comment. The current build can show that desktop-registry warning while the phone relay is actually working, so it must not be used as an external-watchdog restart signal.
Concrete defects found on current
mainConnectedduring cleanup.clear_server_token()cleared the token/expiry but notnext_refresh_at; a 401/403 could therefore leave required refresh deferred.WouldBlockwas retried every second even when the typed enrollment deferral was minutes away, producing repeated prepare/connect/log cycles.ClientId, although concurrentStreamIdvalues are supported; interleaved streams could reset/drop each other.I prepared a local five-file proof patch (not deployed to the active Desktop app) that:
WouldBlockkeeps the 1 s fallback;Erroredimmediately when a connection worker dies, before cleanup;(ClientId, StreamId).Validation with the pinned Rust 1.95 toolchain, two compiler jobs, and an isolated target:
Recommended durable recovery work:
remoteControl/reconnectoperation that preserves enrollment, cursors, threads, and running turns;The active app was not restarted to test this because doing so would interrupt in-progress work.
kendonB commentedon Jul 22, 2026
if it helps 5.6 Sol thinks it's a failure of the Android side (my app is up to date and I have tried refreshing local data / cache)
"""
The Windows host is working; the pairing failure is on the Android/account side.
Evidence from this machine:
Most likely, the Android app is outdated or signed into a different ChatGPT account/workspace. Remote now uses authenticated one-to-one QR pairing, so old pairings may no longer work. [OpenAI release notes](https://help.openai.com/en/articles/6825453-chatgpt-release-notes)
Do this:
If you send me the exact Android error or a screenshot, I can narrow down which mobile-side cause it is.
I also added OpenAI’s official documentation source to Codex during the diagnosis; it will become available after the desktop app next restarts.
"""
Mavumavu commentedon Jul 22, 2026
Additional host-side Remote Control timeline from Codex Desktop
26.715.10079.0:18:20:00through18:29:48 +02:00, the local app-server recorded 445 Remote Control websocket/server-API transport entries.18:29:50, Windows recordedChatGPT.exeApplication Hang Event 1002 and WERMoAppHang; AppModel destroyed the Codex AppX container.18:30:17and started again at18:30:36; Wi-Fi/network profile reinitialization followed. Therefore the later network events are explained by the reboot and do not establish whether connectivity was healthy before the app hang.18:31:08. Remote/task activity became available again only after local recovery/interation.git,gh,npm, ornpxprocess was active at recovery.This does not yet prove whether the Remote Control reconnect loop contributed to the main-process hang or was an early symptom of host starvation. The
MoAppHangpreceded system shutdown by roughly 27 seconds, but the shutdown/restart also limits what can be inferred from the connection ending. What is proven is that remote heartbeat/recovery currently shares the failing desktop-host lifecycle. A host-visiblelast seen, last successful server-token refresh, reconnect reason/backoff, and an out-of-process recovery path would materially improve diagnosis and recovery. The matching WER/AppX timeline is linked here: #17229 (comment).grtninja commentedon Jul 23, 2026
Additional Windows/Pro corroboration with rollout timing:
Remote phone-to-PC control had previously worked on the affected Windows host. After the July 9 unified ChatGPT Work / Codex desktop rollout, the host-side Codex application could remain open and locally usable while the remote host/heartbeat path stopped presenting a recoverable connection to the phone client.
Observed distinction:
That timing does not prove the rollout caused the regression, but it provides a useful before/after boundary for telemetry correlation. Please preserve host registration generation, last successful heartbeat, desktop build, mobile build, WebSocket close reason, and pairing/session invalidation reason so these failures can be separated without physical access.
kendonB commentedon Jul 25, 2026
btw, this feature works 100% flawlessly using the Claude Windows desktop app + Claude Android app, so it's 100% a codex software issue, not an environment issue.
youngbumkim80 commentedon Aug 21, 2026
Additional reproduction observed on 2026-08-21 (KST), Windows host → ChatGPT mobile Remote Control.
Current failure pattern is slightly more intermittent than the original report but appears to be the same Remote Control / relay family:
This is occurring during a long-running Codex workflow where the host-side work itself can continue independently, so the symptom is not simply that the coding task has ended. The failure appears to be in the Remote Control/app-server/relay path rather than the underlying workload.
No claim is being made here that this is a global OpenAI outage. The key user-visible problem is repeated loss of the remote-control transport after an initially successful connection, with recovery lasting only briefly.
This also seems related to the relay auto-reconnect failure described in #26786, although this reproduction is on the Windows Remote Control workflow rather than WSL2.
It would be very useful if the client exposed diagnostics for each disconnect/reconnect cycle, especially:
Expected behavior: once the host is still alive, Remote Control should either remain connected or recover automatically and stay recovered, rather than reconnecting only for a few seconds/minutes and dropping again.
ale-arc commentedon Aug 21, 2026
Additional Windows 11 reproduction on 2026-08-21, Codex Desktop package
26.818.2872.0, using ChatGPT mobile Remote Control.Remote Control repeatedly enters
Reconnecting...or connects briefly and then drops, while the Windows host remains usable locally. I completed the documented recovery steps: toggled discovery/control permission, fully restarted Codex, refreshed the pairing, restarted the mobile app, and verified the same account/workspace.Basic network checks passed (DNS, TCP/443, and HTTPS to OpenAI endpoints; no proxy configured). The issue persists and matches the repeated
forwarding remote control connection closed transport eventpattern.This looks like a Remote Control reconnect/state bug rather than basic network reachability. No private diagnostics, identifiers, tokens, or raw logs are attached.
yisraelk commentedon Aug 21, 2026
Adding an independent Windows reproduction with host-side TCP lifecycle evidence. This appears to be the same permanent Remote reconnect/offline failure, while the desktop and local app-server remain usable.
Environment
OpenAI.Codex 26.818.3698.0codex.exe -c features.code_mode_host=true app-server --analytics-default-enabledReproduction timeline
10:27local time.Connecting...followed by a red disconnected indicator and could no longer open the host.Last connectedvalue. The Desktop UI and local Codex work remained responsive.No corresponding host sleep or Windows network-disconnect event was found for the failure window.
Socket evidence
The long-lived app-server TCP connection created at
10:27:00, matching the successful fresh-pairing time, is now stuck inCLOSE_WAIT. Additional app-server port-443 connections accumulated inCLOSE_WAITwhile Remote remained unavailable:At the same observation point, the same app-server process still had 37
Establishedconnections. General HTTPS/API connectivity therefore continued while the closed connections were not released or replaced.The sanitized PowerShell check was:
Assessment
This is consistent with a relay/WebSocket reader or worker stopping after the peer closes the underlying TCP connection, while Desktop's persisted Remote state continues to report a recently connected/available host. The app-server does not appear to tear down and replace the stale transport in-process.
Potential durable recovery:
Last connected/availability with actual relay heartbeat state;remoteControl/reconnectoperation that preserves enrollment, threads, and active turns;No account IDs, device IDs, installation/environment IDs, pairing material, tokens, IP addresses, usernames, private paths, or conversation contents are included.