[Codex App] Completed subagents remain running and their timers keep increasing until opened
What version of the Codex App are you using (From “About Codex” dialog)?
Codex Desktop MSIX: 26.818.2441.0 (x64)
What subscription do you have?
chatGPT Pro
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
When a subagent finishes, its entry in the parent task's subagent list does not update to the completed state. It continues to appear as running/in progress, and its elapsed-time counter keeps increasing.
If I click and open the subagent, the UI refreshes and immediately shows the subagent as completed with its final result. This makes the live subagent list appear incorrect until the subagent is opened.
The completion appears to be persisted because the final state is shown after opening the subagent. I have not observed data loss; the problem is that the live list/status display is stale.
What steps can reproduce the bug?
- Start a task in Codex Desktop.
- Spawn a subagent and let it complete.
- Leave the completed subagent unopened and return to the parent task or subagent list.
- Observe that the subagent still appears to be running/in progress and that its elapsed-time counter continues to advance.
- Click/open the subagent.
- Observe that it now shows the completed state and final result.
What is the expected behavior?
As soon as a subagent completes, the parent task's subagent list should receive and display the completed status without requiring the user to open the subagent. The elapsed-time counter should stop at completion, and the row should not continue to appear active.
Additional information
This appears to be a live UI state-synchronization problem: opening the subagent forces a refresh that applies the already-persisted completion state.
This is related in symptom to #20754 (the Desktop UI can remain stuck showing a running state after a task has completed), but this report is specifically about completed subagents whose status and timer remain stale until the subagent is opened.
3 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Repro on macOS 26.6.2 arm64, Codex Desktop (Codex Framework 151.0.7922.170, app-server
codex -c features.code_mode_host=true). Same symptom: completed subagents stay "Working" with running timers in the parent's subagent list; clicking into the subagent detail flips it to Done; going back refreshes the list badge.Local state-store evidence (
~/.codex/state_5.sqlite, read-only inspection):thread_spawn_edgeshas 762 rows and every one isstatus='open'— no row ever transitions to a terminal state.UPDATE thread_spawn_edges SET status = ? WHERE child_thread_id = ?) and terminal status literals (failed,interrupted), so a completion path exists but evidently doesn't fire on subagent turn-end.status='open'edge row, the detail view consults live run state, and returning to the list re-renders from fresh data — which is why opening + closing "fixes" each badge one at a time.Also observed related fallout in #39694 / #37563 / #35209. Suggested fix direction: transition
thread_spawn_edges.statuson subagent completion event (or derive the list badge from live run state instead of the persisted edge row).Update (2026-08-26, Windows/MSIX): this is reproducible on Codex Desktop 26.820.7780.0 (x64) with bundled CLI codex-cli 0.150.0-alpha.8.
Reproduction:
A read-only local audit found no live child handles and classified 149/150 persisted child rows as terminal/not currently active. Rollout JSONL files were still present, while thread_history_1.sqlite contained stale in-progress activity and ordinal gaps. This indicates that the completed state is being rehydrated from a stale history projection after reopen, not that all displayed children are executing. No private project data is attached.