openai / openai/codex

Urgent recurring failure: macOS and iOS Codex conversations do not converge to the same history

Open
#43,338 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app app-server bug
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Urgent recurring failure: macOS and iOS Codex conversations do not converge to the same history

Environment

  • Observed at 2026-09-07 03:01 UTC (September 6, America/Denver).
  • macOS desktop app bundle: ChatGPT 26.901.51231, build 8109, read from /Applications/ChatGPT.app/Contents/Info.plist. This bundle hosts the Codex task.
  • Separately installed CLI: codex-cli 0.144.4. The active desktop app-server version has not been established; do not assume it equals this CLI version.
  • Long-running local Codex task with many completed turns and prior user-reported recurrence.

User-reported failure and impact

This has occurred before; it is a recurring, work-blocking conversation-integrity problem. The user explicitly reports that macOS and iOS Codex conversations do not converge to the same information. This is not merely a request to improve scrolling or presentation: the user cannot establish a reliable shared record of instructions, decisions, results, or current activity across devices.

The user reports that the conversation history rendered in the app has again diverged from the actual ongoing conversation, with inconsistent history between apps. They cannot determine what work is currently happening or whether their instructions are being applied to the same conversation. They are also concerned about possible unobserved work and usage consumption. This makes continued agentic work unsafe to supervise and is blocking further project execution.

Please treat this as a high-impact reliability issue requiring urgent triage. When an agent can execute commands and change infrastructure, users need to know which instructions and results constitute the actual conversation. A transcript that remains divergent across macOS and iOS removes that ability to supervise. The iOS app version and exact first-divergence event have not yet been collected; the cross-device symptom and recurrence are user-reported, while the stale desktop history API response below was independently observed.

Independently observed evidence

During the live affected conversation, the assistant queried the app-provided read_thread tool for this exact task ID using turnLimit: 1, includeOutputs: false, and a short output limit.

It returned an older turn with:

{
  "status": "inProgress",
  "startedAt": 1788740227,
  "completedAt": null
}

The returned last assistant message concerned an earlier infrastructure cutover. The active model-visible conversation contains numerous later user/assistant exchanges, completed subsequent cache implementation, a newly created draft PR, and this current incident report. The earlier turn appears as the latest returned turn even though those subsequent exchanges have occurred. A preceding turnLimit: 2 read also returned the older work rather than the recent cache phase.

list_threads and the task's CODEX_THREAD_ID environment variable agree on the selected task ID, so this was not an intentionally selected different task. Thread/turn IDs are retained locally and can be provided privately. No screenshot comparison, raw-rollout/database comparison, or active app-server version check has been performed in this incident investigation.

Expected behavior

macOS and iOS views of the same conversation must converge to the same ordered messages, decisions and results. The rendered transcript, latest-turn read, active conversation context, and execution status should agree. If history projection is incomplete or stale, the UI should clearly disclose that and recover it without losing messages. An old in-progress turn must not silently substitute for the current conversation.

Requested urgent investigation

  1. Reconcile the affected task's durable history, projected history, UI transcript, and current execution state.
  2. Identify whether the old in-progress turn is stale presentation/projection or represents an actual live execution. Confirm whether any duplicate/unobserved runs occurred.
  3. Audit usage attribution if duplicate execution occurred. Duplicate billing/token use is a user concern, NOT established by this evidence.
  4. Provide a recovery procedure for already-affected conversations that preserves all user messages, results and ordering.
  5. Verify recovery and continued convergence on both macOS and iOS, including long-running existing conversations. A fresh conversation working on one device alone would not demonstrate that this recurring problem is fixed.

Potentially related: #43182 (stale latest-turn projection on the same desktop bundle version). The symptom matches closely, but this report does not establish the same cursor defect or root cause.

Project work was paused for this report. No transcript, database, or projection was modified; no repair/restart was attempted. No private project source, raw logs, credentials, or full transcript is attached.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reconciling the affected task's durable history, projected history, UI transcript, and execution state using the reported read_thread and list_threads results and CODEX_THREAD_ID. Compare the stale in-progress turn with later exchanges and the related behavior in #43182. Done means the root cause and any duplicate execution are established, affected conversations have a recovery procedure, and macOS and iOS histories converge without losing ordering or results.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, macos, rust
Domain
desktop-dev, distributed-systems, mobile-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.