TUI resume fails: list_turns is not supported yet
Open 💬 7 comments Opened Aug 10, 2026 by mvillmow
Summary
Codex CLI cannot resume an existing local TUI session because thread/resume calls an unsupported list_turns method during TUI bootstrap.
Environment
- Codex:
codex-cli 0.147.0 - OS: Linux x86_64 (kernel 5.15)
Steps to reproduce
- Have an existing Codex TUI session under
~/.codex/sessions/. - Run
codex resume <session-id>or select the session from the resume picker. - Observe that the TUI fails during bootstrap instead of opening the session.
Actual behavior
Failed to resume session from ~/.codex/sessions/YYYY/MM/DD/rollout-....jsonl:
thread/resume failed during TUI bootstrap:
thread/resume failed: list_turns is not supported yet (code -32601)
The local rollout file is still present.
Expected behavior
The CLI should resume the existing session successfully. If the stored session or active app-server protocol is incompatible, Codex should either use a compatible resume path or report a specific actionable version/protocol mismatch instead of invoking an unsupported method.
Additional information
A search of existing openai/codex issues for list_turns and the exact error text returned no matches. The rollout is not attached because it contains private conversation data, but sanitized diagnostics can be provided if needed.
7 Comments
I could not reproduce this on macOS arm64 with
codex-cli 0.147.0-alpha.6.5bundled with ChatGPT.Both a new session resumed successfully by explicit ID and through the resume picker.
thread_history_1.sqliteis also missing locally, so its absence alone does not appear to trigger the error.This may be specific to Linux
0.147.0, older sessions, or an app-server version mismatch.I've hit this just now and I cannot resume a single codex session locally :(
I'm on macos arm64 with 0.147.0 installed from brew
I can confirm this on Linux x86_64 with
codex-cli 0.147.0installed via npm.The explicit-ID resume command fails with the same error:
Retrying with unified exec disabled produces the identical failure:
I also checked the saved rollout metadata: it was created by
codex-cli 0.147.0, hassource: cli/originator: codex-tui/model_provider: openai, and ends normally withtask_complete. The rollout file is still present. This suggests the failure is not caused by a missing rollout, an obviously incomplete session, or theunified_execfeature flag.I have omitted the session ID and rollout contents because they contain private conversation and tool-output data.
I can confirm same issue on x86_64 GNU/Linux
workaround that worked for me:
codex exec resume <session-id> "Continue from where we left off. First summarize the current state."
Hi @mvillmow, the frozen history/resume behavior you described is one of the persistence patterns I've been studying. Codex Rescue Alpha5 includes a read-only projection consistency check that compares canonical rollout progress against stored projection cursors without touching SQLite.
If you still have the affected pre-repair session locally, you can test it with:
(or point
doctordirectly to the rollout file). Please sanitize/redact any sensitive paths or names before sharing diagnostic output; raw session files are never needed.Code shape on
main@ 1f41cc5d92 that explains the "some can, some can't" pattern:list_turnsis implemented by the local thread store (thread-store/src/local/mod.rs#L542-L545); thelist_turns is not supported yeterror is the default trait impl (store.rs#L273-L280), which only fires when the serving process's store doesn't override it — i.e. the process handling yourthread/resumeis running code (or a store variant) without the implementation.The most likely everyday cause is mixed versions between the TUI and a persistent app-server daemon: the TUI hands
thread/resumeto a long-lived backgroundcodex app-server, and that daemon keeps executing the binary it started with even after an npm/standalone upgrade replaces the CLI on disk (the same version-skew aggravator documented in #38792 — the daemon ran a deleted 0.146.1 binary for two days). A new TUI whose resume path requireslist_turnsagainst an old daemon that predates it yields exactly-32601 … not supported yetfor every session, which matches @alexr17's "cannot resume a single session" onset.Quick check/workaround:
codex doctorshows the running app-server's version next to the CLI's — if they differ, kill/restart the daemon (codex app-server daemon stopor terminate the process) and resume again. Durable fix: a version/capability handshake at TUI↔daemon connect that refuses skew with "app-server is running version X, CLI is Y — restart the background server", instead of surfacing a bare method-not-found mid-resume.Still reproducible on Windows with the current npm release:
codex-cli 0.149.110.0.19045)codex resume ...without--remote)Resuming a local TUI session whose rollout metadata uses
history_mode: "paginated"fails with the exact same error:The rollout JSONL is still present and parses successfully. I reproduced the same
list_turnsfailure on 0.145.0, 0.146.1, and 0.149.1. The affected session resumes successfully with 0.142.5, which suggests a regression or compatibility problem in the paginated-history/app-server resume path rather than a damaged rollout file.