{"record":{"id":"40119ca630948791","repo":"openai/codex","slug":"terminal-input-stream-closed-during-startup","errorCode":null,"errorMessage":"terminal input stream closed during startup","messagePattern":"terminal input stream closed during startup","errorType":"exception","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/tui/src/startup_draft.rs","lineNumber":216,"sourceCode":"        }\n        Ok(())\n    }\n\n    /// Poll one existing startup future alongside the original terminal input stream.\n    pub(crate) async fn run_until<F>(&mut self, tui: &mut Tui, future: F) -> io::Result<F::Output>\n    where\n        F: Future,\n    {\n        if self.initial_screen == StartupDraftInitialScreen::Composer {\n            self.draw(tui, tui.terminal.last_known_screen_size)?;\n        }\n        tokio::pin!(future);\n        loop {\n            tokio::select! {\n                output = &mut future => return Ok(output),\n                event = self.events.next() => {\n                    let Some(event) = event else {\n                        return Err(io::Error::new(\n                            io::ErrorKind::UnexpectedEof,\n                            \"terminal input stream closed during startup\",\n                        ));\n                    };\n                    self.handle_event(tui, event)?;\n                }\n            }\n        }\n    }\n\n    /// Preserve pending draft edits while continuing to reject startup actions and submission.\n    pub(crate) async fn flush_pending_events(&mut self, tui: &mut Tui) -> io::Result<()> {\n        loop {\n            for _ in 0..STARTUP_EVENT_BATCH_SIZE {\n                let Poll::Ready(Some(event)) = std::future::poll_fn(|context| {\n                    Poll::Ready(self.events.as_mut().poll_next(context))\n                })\n                .await","sourceCodeStart":198,"sourceCodeEnd":234,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/tui/src/startup_draft.rs#L198-L234","documentation":"Error \"terminal input stream closed during startup\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/tui/src/startup_draft.rs:216 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}