Codex 0.160 queued messages resume after reconnect: Sume safety

Codex 0.160 resumes unsent queued messages after a reconnect without duplicate sends. That covers messages, not tool effects, so keep Sume idempotency_key.

4 min readSume
All posts

Codex CLI 0.160.0 (October 1, 2026) says unsent queued messages now resume after reconnection once uncertain submissions are resolved, avoiding duplicate sends. That is a fix for chat messages. It does not make a paid Sume tool call safe to repeat, because a tool call that already reached Sume is a separate effect. Keep sending an idempotency_key on every write and paid tool.

What is and is not deduplicated

Codex 0.160 and Sume (read 2026-10-02)
LayerProtected byNot protected
User message after reconnectCodex 0.160 resume logicAnything outside the message
Sume write or paid MCP toolidempotency_key argumentCalls with a new key or changed body
Sume REST createIdempotency-Key headerSame

How Codex reaches Sume

Codex can attach a remote MCP server with a bearer token read from an environment variable, so https://mcp.sume.com/mcp works with a SUME_API_KEY and Authorization: Bearer. An API key sees the full tool set. OAuth is also supported on the MCP host with PKCE, using the mcp:read scope, with mcp:write as an opt-in. Under read-only, mutating tools return insufficient_scope.

Waiting for a render

A network drop is exactly when a long job is in flight. If the connection returns and the session continues, do not recreate the job. Call jobs_wait again with the same ids. It holds at most 55 seconds, and wait_slice_expired simply means ask again. A 524 or 522 on the way is a transport failure, not a job outcome.

  • Reuse the same idempotency_key when the model retries a create.
  • Prefer dry_run and max_spend_usd while testing a prompt.
  • Batch job_ids accepts 1 to 20 ids.

Quick test

Start a paid call, disconnect the network, reconnect, and watch the next tool call. If the model re-issues the same create with the same key, the response is the original job. If you see a second job id, the key was regenerated; fix the prompt so the key is derived from the task, not invented each time.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume