iOS remote client times out loading long desktop Codex sessions and has no retry path
Summary
When using the iOS client to remotely control/access Codex Desktop, long-running sessions are prone to timing out while loading messages/session state. After the timeout, the iOS UI does not appear to retry automatically, and there is no clear manual retry path.
The visible error in the iOS UI is localized Chinese:
加载消息时出错:Codex 请求超时。
Roughly: "Error loading messages: Codex request timed out."
Environment
- Remote client: iOS Codex/ChatGPT remote-control flow
- Host: Codex Desktop
- Date observed: 2026-06-16
- Exact iOS/Desktop versions: not captured yet
Reproduction
- Start or continue a Codex Desktop session.
- Let the session become long enough that the thread/history contains a substantial amount of content.
- Open the same session from iOS through the remote-control flow.
- Attempt to load/resume/pull the long session messages.
Expected behavior
The iOS client should recover long sessions reliably. If a request times out, it should either:
- retry automatically with backoff,
- load messages incrementally/paginated instead of requiring one large fetch,
- resume from the last successfully fetched point, or
- show a clear manual retry action.
Actual behavior
For long sessions, the iOS client frequently times out while loading messages/session state. After the timeout, the UI displays:
加载消息时出错:Codex 请求超时。
There does not appear to be an automatic retry mechanism or an obvious retry button, so transient network/server delays become a hard failure from the user's point of view.
Impact
Long-running Codex Desktop sessions become unreliable from iOS, especially over mobile or weaker networks. This makes it difficult to monitor or resume active desktop work remotely once the conversation history grows large.
Suggested direction
This would be more robust with incremental/paginated message loading, request retry/backoff for timeout failures, and a visible retry action in the timeout state.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗