Codex 0.160.0 resumes queued messages after reconnect: Sume key rule

Codex 0.160.0 resumes unsent queued messages after a reconnect without duplicates. A paid Sume call still needs its own idempotency_key to be safe.

4 min readSume
All posts

Codex 0.160.0 does not remove the need for an idempotency_key on Sume paid calls. Its changelog entry for October 1-2, 2026 says unsent queued messages resume after reconnection once uncertain submissions resolve, avoiding duplicates. That protects the message queue in the client. A tool call that already left the machine and reached Sume is a separate event, and only a key on the call can make Sume treat a repeat as the same request.

What each layer covers

The Codex fact comes from the Codex changelog (read 2026-10-07). The Sume rules come from MCP tools and gates and Jobs and results.

A dropped connection

The table walks through a dropped connection in the middle of a paid call.

Where duplicates can be stopped (read 2026-10-07)
LayerWhat it knowsWhat it can stop
Client message queueWhich messages were sentA repeated chat message
Tool call already sent to SumeNothing, if the reply was lostNeeds the key on the call
Sume idempotency_keyThe key and the original jobA second paid job for the same intent

After a reconnect

After a reconnect, the safe sequence is:

  • Do not make the paid call again from a fresh prompt. Look up the job first with jobs_list or jobs_status if you kept an id.
  • If you have no id, repeat the call with the same idempotency_key. Sume returns the original job and reports a hit instead of billing twice.
  • If the key matches but the body is different, expect a 409 conflict. Fix the body or use a new key on purpose.

Where the key should come from

Make the key from the business event, such as an order id plus a version, so that a fresh session produces the same key for the same intent. A random value made inside the model turn will differ after a resume.

Sources

Related posts

More in Agents

All Agents posts

Written by Sume