`codex resume` repeatedly fails with "Timeout waiting for child process to exit"
Open 💬 4 comments Opened Apr 2, 2026 by hizhangwei1205
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
What version of Codex CLI is running?
0.118.0
What subscription do you have?
API pay-as-you-go
Which model were you using?
gpt-5.3-codex
What platform is your computer?
Debian 13, x86_64
What terminal emulator and version are you using (if applicable)?
MobaXterm
What issue are you seeing?
codex resume fails consistently for one specific session ID. Reconnect retries appear, then it ends with: Timeout waiting for child process to exit. I can see session history, but new prompts never proceed. New sessions work normally, so this seems isolated to the resumed session state.
What steps can reproduce the bug?
- Run: codex resume sessionID
- Wait for reconnect attempts (Reconnecting...)
- Observe failure: Timeout waiting for child process to exit
- (Tried mitigation) Find and terminate only the stuck resume-related PIDs via pgrep -af codex + kill, then rerun resume
- Same error persists; only this session ID fails while new sessions are fine
What is the expected behavior?
codex resume <session_id> should reconnect successfully, restore an interactive prompt, and allow sending new messages in that resumed session without timing out.
Additional information
_No response_
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
If you're able to repro, please resume the thread and then use
/feedbackto upload your logs and session details, then post the thread ID here.@etraut-openai
threadId: 019d5287-e006-7c20-85a8-8ab299d53d7e
<img width="704" height="519" alt="Image" src="https://github.com/user-attachments/assets/76fc8931-c602-4d30-91db-f7c1e19f8172" />
This failure needs a session repair path, not only reconnect retries.
When resume times out waiting for a child process, Codex can record child pid/process group, last stream event, last completed rollout offset, and stop reason, then offer
resume --repair <id>that marks the dangling turn interrupted and starts after the last completed event.Otherwise one stuck child poisons an otherwise readable session.
---
_Generated with ax._