Skip to content

Codex Desktop emits a second user-visible response after a late subagent completion #33061

Open

Description

@flamaso

What version of the Codex App are you using (From “About Codex” dialog)?

26.707.62119 (bundled codex-cli 0.144.2)

What subscription do you have?

ChatGPT subscription (the desktop client does not expose the exact tier locally)

What platform is your computer?

Darwin 25.5.0 arm64 arm (macOS 26.5.2)

What issue are you seeing?

Codex Desktop produced two separate user-visible assistant responses for one user turn.

The first response was the correct final answer. Immediately afterward, a late internal subagent completion arrived with trigger_turn:false. Despite that flag and despite there being no new user message, the root agent emitted a second, unrelated acknowledgement. In the UI this made the useful answer appear to be replaced/superseded by the second non-answer.

Sanitized local JSONL timeline:

12:59:16.578  user_message
12:59:25.848  event_msg agent_message        # correct final response
12:59:25.851  response_item message assistant
12:59:26.019  inter_agent_communication_metadata {"trigger_turn":false}
12:59:26.019  response_item agent_message     # /root/integration_architecture -> /root
12:59:30.076  event_msg agent_message        # second unrelated response
12:59:30.076  response_item message assistant
12:59:30.476  event_msg task_complete

The two visible assistant responses were 4.2 seconds apart, with the late subagent message between them.

What steps can reproduce the bug?

  1. Start a Codex Desktop task whose root agent spawns multiple subagents.
  2. Let at least one subagent remain active after the root has enough information to answer.
  3. Send a user follow-up that the root answers immediately.
  4. After the first user-visible final answer, let the remaining subagent finish and send its result to the root.
  5. Observe whether Codex emits a second user-visible assistant response without a new user message.

This may be timing-dependent. The local transcript demonstrates the exact ordering above.

What is the expected behavior?

A late internal subagent result with trigger_turn:false must not create another user-visible assistant response after a final answer has already been delivered. It should remain internal, be discarded, or be incorporated only into a future user-triggered turn. The first final response must remain the sole answer to that user message.

Additional information

This appears distinct from #14805, where the model duplicates the same text in the TUI, and from #31042, which concerns stale previous-topic responses. Here, different text was emitted in a second assistant message and the trigger was a late inter-agent completion after the correct final.

The complete transcript and desktop logs are available locally but are not attached publicly because they may contain private conversation and filesystem data. I can upload the affected task through /feedback and add the resulting session ID.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    subagentIssues involving subagents or multi-agent features
    on Jul 14, 2026
  2. joshp123 commented on Jul 16, 2026

    @joshp123

    human tl;dr: codex finishes a turn, but you see nothing in the chat window. you have to expand the “Worked for 32s” history bit to see Codex’s actual response. this is obviously not the idea :)

    codex generated AI slop below:

    I hit what looks like the same underlying late-subagent bug, but with an empty second response.

    The local rollout matches the ordering reported here:

    • 14:32:14.543Z: non-empty agent_message, phase final_answer, 1,826 characters
    • 14:32:14.562Z: non-empty assistant response_item, phase final_answer, 1,826 characters
    • 14:32:14.678Z: late subagent result with trigger_turn:false, 2,738 characters
    • 14:32:23.955Z: second agent_message, phase final_answer, 0 characters
    • 14:32:23.955Z: second assistant response_item, phase final_answer, 0 characters
    • 14:32:24.541Z: task_complete, with an empty last_agent_message

    So this variant does not show a second unrelated acknowledgement. The second response is empty, and the useful first answer ends up inside the collapsed work disclosure.

    Environment:

    • Codex Desktop 26.707.72221, build 5307
    • Bundled Codex CLI 0.144.2
    • ChatGPT Pro
    • Darwin 27.0.0 arm64 arm
    • GPT-5.6 Sol, Medium
    • Feedback / thread ID: 019f6abe-804a-7661-b8e7-279339cdce17
    • Affected turn ID: 019f6b57-4c05-7db3-9472-5f2decd6d8a0

    The in-app feedback report included the current session and browser logs.

    This comment was generated by Codex from screenshots and redacted local diagnostic evidence, then reviewed and edited by the user.

    turn ends with nothing:

    expand and you see that nothing is actually something:

    Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingsubagentIssues involving subagents or multi-agent features

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions