Codex App review session inserts invalid message id review_rollout_user
What version of the Codex App are you using (From “About Codex” dialog)?
Codex App 26.715.31925 (build 5551)
What subscription do you have?
pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
What issue are you seeing?
After starting a code review in the Codex App, the app inserted a synthetic user message into the session with this ID:
"review_rollout_user"
All subsequent requests in that thread fail with HTTP 400:
[ApiIdParam] [input[2].id] [invalid_id_prefix]
Invalid 'input[2].id': 'review_rollout_user'.
Expected an ID that begins with 'msg'.
The affected thread becomes permanently unusable. Sending another message, clicking Retry, and running remote Compact all fail with the same error. Restarting does not repair the session.
The local session JSONL confirms that the review result was stored as a response_item/message with "id":"review_rollout_user" instead of a valid msg... ID.
Expected behavior:
Review-generated messages should use a valid API message ID, or the invalid internal placeholder ID should be removed before replaying the conversation.
Feedback ID: 019f7d79-67a7-76e1-866d-564082402e15
What steps can reproduce the bug?
- Open an existing Codex App thread associated with a Git worktree.
- Start a code review using the Codex App’s Review action.
- Wait for the reviewer model to finish and insert the review results into the thread.
- Send any follow-up message in the same thread.
- Observe that the request fails with HTTP 400:
Invalid 'input[2].id': 'review_rollout_user'. Expected an ID that begins with 'msg'.
- Click Retry or trigger remote Compact.
- Observe that both operations fail with the same error.
The bug occurs because the review result is persisted as a user message with the synthetic ID "review_rollout_user", which is replayed in subsequent API requests.
What is the expected behavior?
The review result should be stored with a valid message ID beginning with msg, or its internal placeholder ID should be removed before the conversation is sent to the API.
After a review completes, the user should be able to continue the same thread, retry a turn, and compact the conversation without receiving an invalid_id_prefix error. An invalid review-generated message should not permanently make the thread unusable.
Additional information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗