Interactive `/review` follow-up can crash codex-cli 0.118.0 with active turn ID mismatch
What version of Codex CLI is running?
codex-cli 0.118.0
What subscription do you have?
ChatGPT Business, ChatGPT Plus
Which model were you using?
gpt-5.4
What platform is your computer?
Darwin 24.6.0 arm64 arm, Linux 6.17.0-1014-nvidia aarch64 aarch64
What terminal emulator and version are you using (if applicable)?
iTerm2, tmux 3.6a
What issue are you seeing?
I searched existing issues first and found some related reports, but not an identical one:
- #14077
- #15842
- #13892
- #16339
This report is specifically about the interactive CLI /review slash command: if I send a follow-up message while the review is still running, codex-cli can crash with an active turn ID mismatch.
While /review was still running, I sent an additional follow-up message to refine the review context.
The follow-up message was:
Issue #26 も参考にしてください
Immediately after that, codex-cli crashed with:
Error: turn/steer failed: expected active turn id `019d4673-d45f-7a51-8129-1ac29e120433` but found `019d4673-d38f-7121-a7dc-d13f0dcb9f1b`
This does not look like a normal Review was interrupted case, because the CLI process itself crashed.
I also reproduced the same issue on a second machine running:Linux 6.17.0-1014-nvidia aarch64 aarch64
In the Linux reproduction, the follow-up input was:
see Issue #9
and codex-cli crashed with:
Error: turn/steer failed: expected active turn id `019d46c1-a2ce-7a41-844d-30e5bde8ac2e` but found `019d46c1-a2ae-79b3-b928-7b6c2fa76471`
So this does not appear to be macOS-specific.
What steps can reproduce the bug?
- Start the interactive CLI with
codexin a repository. - Run the
/reviewslash command. - While the review is still actively running, send a follow-up message instead of waiting for the review to finish.
- In my reproductions, the follow-up messages were:
Issue #26 も参考にしてくださいsee Issue #9
- Observe that codex-cli crashes with an active turn ID mismatch, for example:
``text019d4673-d45f-7a51-8129-1ac29e120433
Error: turn/steer failed: expected active turn id but found 019d4673-d38f-7121-a7dc-d13f0dcb9f1b``
Affected local thread IDs from reproduced sessions:
- macOS top-level thread ID:
019d4672-85d8-7c10-a990-7aea2ae1ef06
- Linux top-level thread ID:
019d46c1-91c2-7172-b77a-eb9a0d97992f
- Linux child thread ID spawned under the review flow:
019d46c1-a2c3-7ab0-81bd-5f5c33acdded
What is the expected behavior?
If the user sends follow-up input while /review is running, codex-cli should handle it safely and deterministically, for example by doing one of the following:
- queueing the follow-up until the review finishes
- accepting it as a supported steer/follow-up input
- rejecting it with a clear message saying that
/reviewmust complete first
It should not crash due to an active turn ID mismatch.
Additional information
Because the CLI process crashed, I could not use /feedback on the affected session.
Local logs from one reproduced session suggest a parent/child turn desync during the review follow-up / interrupt path:
task_startedwas emitted for turn019d4673-d45f-7a51-8129-1ac29e120433- but
turn_abortedwas emitted for turn019d4673-d38f-7121-a7dc-d13f0dcb9f1b
So the crash appears to happen when the follow-up input is processed against a different active turn than the one the review task believes is running.
Possibly related to the general follow-up / steer state issues in #15842, #13892, and #16339, but this report is specifically about a /review follow-up causing a crash with an active turn ID mismatch.
If useful, I can provide the relevant local session/log excerpts from:
~/.codex/sessions/.../rollout-2026-04-01T09-30-03-019d4672-85d8-7c10-a990-7aea2ae1ef06.jsonl~/.codex/log/codex-tui.log- Linux log excerpt showing:
- top-level review thread ID
019d46c1-91c2-7172-b77a-eb9a0d97992f - review submission/turn ID
019d46c1-a2ae-79b3-b928-7b6c2fa76471 - child thread ID
019d46c1-a2c3-7ab0-81bd-5f5c33acdded - child submission/turn ID
019d46c1-a2ce-7a41-844d-30e5bde8ac2e
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗