Before submitting
Area
apps/server
Summary
A Codex parent launches native subagents, ends its turn while they are still working, and expects their completion to resume it. The children finish and their results are available, but the parent stays idle until the user sends another message.
This has happened repeatedly. One incident was traced through the parent and child Codex transcripts and T3's stored run/subagent state. The affected children were recorded with origin: "provider_native", rather than as app-owned delegate_task jobs.
Steps to reproduce
This outline describes the observed workflow. A fresh, isolated reproduction with the generic task below has not been run.
- Start a Codex thread on Orchestrator V2.
- Ask it to launch a native subagent using
spawn_agent, for example to review a sufficiently large diff.
- Let the parent finish its launching turn with a status message while the child continues. Do not have it remain in
wait_agent.
- Let the child finish without sending another message to the parent.
- Inspect whether child completion starts a parent continuation.
- Send a manual message to the parent. It resumes and can retrieve the completed result.
Expected behavior
The parent continues when its delegated work finishes, without the user having to notice the stall and send a message.
If native subagents intentionally require the parent turn to stay active and explicitly wait, T3's injected instructions should state that requirement and direct agents to delegate_task for work that must resume an idle parent. They currently prefer native subagent tools for supported same-provider work without explaining this lifecycle difference.
Actual behavior
The parent completes its turn while its children are working. Child results are recorded, but no parent continuation starts from their completion.
In the clearest traced incident, the parent ended its turn, the lead reviewer finished about 20 minutes later, and a user message about 3 minutes after that restarted the parent. There was no intervening parent run. The parent then retrieved the finished review.
In another fan-out, seven native children finished after the launching parent turn ended. Parent turns during that period came from unrelated PR-watch notifications, rather than child-completion notifications. The review results were available during those turns. This supports a missing wake-up rather than missing child results.
Impact
Major degradation or frequent failure. Delegated workflows stall unless the user monitors the children and manually resumes the parent.
Version or commit
0.0.46-nightly.20261007.2774, Orchestrator V2.
The release tag points to 611132c171f3a821bd2e32f22261135cef6330ac. The source references below use that revision.
Environment
Linux x86_64 server, Codex provider, full access. The exact Codex CLI version was not established during this investigation.
Evidence and likely cause
Observed evidence comes from read-only inspection of the existing incident. No raw transcripts, database exports, screenshots, thread identifiers, project details, or local paths are attached.
Source inspection suggests a mismatch between native delegation and T3's completion-delivery mechanism:
These are candidate causes from source inspection, not a verified patch. The investigation does not establish whether the intended fix belongs in T3's native completion handling, its injected instructions, or the provider's continuation contract.
Workaround
Sending a manual message to the parent restored progress in the traced incident.
Potential workflow mitigations are to keep the parent active with wait_agent, or use app-owned delegate_task for asynchronous work that needs a completion wake-up. Those alternatives have not been tested in a fresh reproduction of this incident.
Related reports
- #13490 covers missing wakes after follow-up turns on reused app-owned children. This report concerns native children completing after the spawning parent turn ends.
- #15567 concerns lost native Codex child tracking after a server restart. Here, child completion and results were recorded.
Suggested verification
Cover a native child completing after its parent turn ends, multiple children completing close together, and a child completing while an unrelated parent turn is active. Verify that results reach the parent without a manual prod and without duplicate continuations. If automatic native wakes are intentionally unsupported, verify that the instructions prevent the parent from ending its turn while relying on one.
Before submitting
Area
apps/server
Summary
A Codex parent launches native subagents, ends its turn while they are still working, and expects their completion to resume it. The children finish and their results are available, but the parent stays idle until the user sends another message.
This has happened repeatedly. One incident was traced through the parent and child Codex transcripts and T3's stored run/subagent state. The affected children were recorded with
origin: "provider_native", rather than as app-owneddelegate_taskjobs.Steps to reproduce
This outline describes the observed workflow. A fresh, isolated reproduction with the generic task below has not been run.
spawn_agent, for example to review a sufficiently large diff.wait_agent.Expected behavior
The parent continues when its delegated work finishes, without the user having to notice the stall and send a message.
If native subagents intentionally require the parent turn to stay active and explicitly wait, T3's injected instructions should state that requirement and direct agents to
delegate_taskfor work that must resume an idle parent. They currently prefer native subagent tools for supported same-provider work without explaining this lifecycle difference.Actual behavior
The parent completes its turn while its children are working. Child results are recorded, but no parent continuation starts from their completion.
In the clearest traced incident, the parent ended its turn, the lead reviewer finished about 20 minutes later, and a user message about 3 minutes after that restarted the parent. There was no intervening parent run. The parent then retrieved the finished review.
In another fan-out, seven native children finished after the launching parent turn ended. Parent turns during that period came from unrelated PR-watch notifications, rather than child-completion notifications. The review results were available during those turns. This supports a missing wake-up rather than missing child results.
Impact
Major degradation or frequent failure. Delegated workflows stall unless the user monitors the children and manually resumes the parent.
Version or commit
0.0.46-nightly.20261007.2774, Orchestrator V2.The release tag points to
611132c171f3a821bd2e32f22261135cef6330ac. The source references below use that revision.Environment
Linux x86_64 server, Codex provider, full access. The exact Codex CLI version was not established during this investigation.
Evidence and likely cause
Observed evidence comes from read-only inspection of the existing incident. No raw transcripts, database exports, screenshots, thread identifiers, project details, or local paths are attached.
Source inspection suggests a mismatch between native delegation and T3's completion-delivery mechanism:
T3OrchestrationInstructions.tsprefers native subagent tools when they support the selected model. It does not tell agents to keep the parent turn active until native children finish.emitSubagentTaskUpdateemits subagent and turn-item updates. It does not offer a parent continuation.turnHasRetainedBackgroundWorkchecks running commands and persistent dynamic tools, without including native subagents.emitOrDeferRootTerminaldefers terminalization for active descendants only when the root status is notcompleted.origin === "app_owned". The pending completion-delivery filter has the same restriction.These are candidate causes from source inspection, not a verified patch. The investigation does not establish whether the intended fix belongs in T3's native completion handling, its injected instructions, or the provider's continuation contract.
Workaround
Sending a manual message to the parent restored progress in the traced incident.
Potential workflow mitigations are to keep the parent active with
wait_agent, or use app-owneddelegate_taskfor asynchronous work that needs a completion wake-up. Those alternatives have not been tested in a fresh reproduction of this incident.Related reports
Suggested verification
Cover a native child completing after its parent turn ends, multiple children completing close together, and a child completing while an unrelated parent turn is active. Verify that results reach the parent without a manual prod and without duplicate continuations. If automatic native wakes are intentionally unsupported, verify that the instructions prevent the parent from ending its turn while relying on one.