Codex Mobile Remote loses multiple queued prompts after VPN reconnect
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
ChatGPT Mobile Remote silently lost 2–3 long, carefully written follow-up prompts after a VPN connection reconnected. The prompts disappeared from the mobile outgoing queue/composer, never appeared on the connected Windows host, and were never executed. The user had to type them again.
This appears related to #25268, but the trigger and impact here are distinct: a VPN/network reconnect loses multiple queued prompts, not just one prompt after backgrounding or a thread reload.
Observed on 2026-09-02.
Environment
- Client surface: ChatGPT mobile, Codex Remote
- Mobile OS and mobile app build: not exposed in the connected host diagnostics; please treat Android/iOS parity as part of the investigation
- Network transition: VPN disconnected/reconnected while prompts were being queued/sent
- Connected host: Windows 11 Pro, version 10.0.26200, build 26200
- ChatGPT Desktop package: OpenAI.Codex 26.825.6671.0 (x64)
- Bundled Codex CLI: 0.151.0-alpha.7.2
- Thread ID: 01a04cb3-bd27-7271-a529-67744e1ec11a
- Remote Control was enabled and the host remained registered
Incident chronology from the five most recent visible user requests
- A release-obfuscation task plus commit/push instruction was sent successfully and executed.
- The user explicitly authorized pushing two commits; that message also reached the host and was executed.
- The user then reported that 2–3 additional, long tasks typed on the phone disappeared after the VPN reconnected.
- The user clarified that these were prompts in the ChatGPT mobile Remote outgoing queue; they did not arrive at the host.
- The user requested an urgent developer ticket because the missing tasks must now be retyped.
The exact missing prompt texts cannot be included: losing those texts is the bug being reported.
Reproduction scenario
- Connect ChatGPT Mobile Remote to a Windows host and open an existing Codex task.
- While a turn is running, type two or more long follow-up instructions on the phone and queue/send them.
- Let the phone's VPN or network connection drop, then reconnect it.
- Return to the same Remote task, host, account, and workspace.
- Observe that the queued prompts are no longer visible, do not retry, never reach the host, and are absent from task history.
Expected behavior
- Every accepted queued prompt is durably persisted before the UI clears it.
- Pending prompts survive VPN/network transitions, app backgrounding, task reloads, and reconnects.
- After reconnect, prompts sync to the connected host in the original order and send exactly once.
- Until the server/host acknowledges receipt, the mobile UI keeps a recoverable local copy and shows a clear state such as Local, Syncing, Queued, Failed, or Sent.
- Failed prompts have Retry, Copy, and Recover actions.
Actual behavior
- Two or three long prompts disappeared silently after VPN reconnect.
- No recovery or retry UI was shown.
- The host never received or executed them.
- The user had to reconstruct the work from memory.
Host-side diagnostics performed
Read-only checks on the connected host found no surviving prompt payload:
- The live desktop queue contained zero rows for the affected thread.
- The desktop
queued-follow-upsstate was empty. - Current thread history contained the before/after messages but none of the lost prompts.
- No separate active or archived task was created for the missing submissions.
- The queue SQLite WAL contained schema pages but no recoverable payload or current thread record.
This strongly suggests the prompts were lost on the mobile client or relay path before durable host synchronization.
Severity and requested fix
This is silent user-authored data loss. Long mobile prompts are often written specifically while another turn is running, so queue durability is essential.
Please urgently:
- Persist drafts and queued prompts locally before changing composer state.
- Sync them through a durable server/host queue with stable client IDs and idempotent retry.
- Never delete the local copy until receipt is acknowledged.
- Preserve multiple queued prompts and their ordering across VPN/network reconnects.
- Expose queue state plus Retry, Copy, and Recover actions.
- Provide equivalent durability on both Android and iOS.
Related: #25268.
No secrets, API tokens, repository contents, or raw logs are attached. Additional sanitized session diagnostics can be shared privately if maintainers provide the preferred channel.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the ChatGPT Mobile Remote outgoing queue and relay path during VPN reconnects, using the empty desktop queued-follow-ups state and queue SQLite WAL findings as comparison points. Investigate how multiple prompts are persisted, acknowledged, retried, and ordered across reconnects. Done means queued prompts remain recoverable, reach the host exactly once, and expose clear recovery states on Android and iOS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems, mobile-dev, networking
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100