Skip to content

Codex Mobile: queued message disappears after app background/thread reload #25268

Description

@tzarebczan

Summary

A queued message in Codex Mobile can disappear after the app is backgrounded and the thread is reloaded. This is user-authored input loss: the message was accepted by the UI as Queue rather than Steer, but after returning to the app there was no visible way to resend, recover, or inspect the queued draft.

Observed

Observed on Android on 2026-05-30 while a goal was active.

  1. A Codex Mobile thread was in the middle of an active goal / long-running turn.
  2. I typed a follow-up message and tapped Queue, not Steer.
  3. I left/backgrounded the app before the active work consumed that queued message.
  4. I came back later.
  5. The thread took a while to load.
  6. Once it loaded, the queued message was gone.
  7. There was no visible resend/retrieve/recover affordance.

Expected

Queued messages should either be durable or explicitly recoverable:

  • remain visible across background/resume and thread reload until sent or canceled
  • survive while a goal/turn is active
  • show whether the queued message is local-only, server-synced, sent, canceled, or failed
  • provide a retry/recover path if the app could not submit or restore the queued message

Actual

The queued message disappeared silently after reload.

Related issues I found

These look adjacent, but I did not find an exact duplicate for mobile queued input disappearing after app background/thread reload:

App-server/API note

I am not sure whether the app-server is intended to own queued messages. From a quick scan of the public v2 app-server surface, I see turn/start for adding user input and beginning a turn, and turn/steer for adding input to an already in-flight regular turn. I did not see a public durable queued-message or queued-draft primitive.

If mobile queue state is currently client-only, mobile should persist it locally and reconcile/replay it on reconnect. A stronger cross-client fix might be an app-server-backed queued prompt/draft API, for example:

  • thread/queuedMessages/list
  • thread/queuedMessages/add
  • thread/queuedMessages/update
  • thread/queuedMessages/delete
  • notifications for queued-message state changes

Stable client IDs / idempotency would let mobile safely retry after reconnect without duplicating queued user input.

Why this matters

Queued messages are often written while Codex is doing long-running work. Losing them silently on mobile makes it unsafe to queue important follow-up instructions before switching apps or waiting for a goal to continue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    app-serverIssues involving app server protocol or interfacesbugSomething isn't workingsessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions