openai/codex · error
runner: no pipe-out provided
Error message
runner: no pipe-out provided
What it means
Error "runner: no pipe-out provided" thrown in openai/codex.
Source
Thrown at codex-rs/windows-sandbox-rs/src/bin/command_runner/win.rs:554
}
/// Entry point for the Windows command runner process.
pub fn main() -> Result<()> {
let mut pipe_in = None;
let mut pipe_out = None;
for arg in std::env::args().skip(1) {
if let Some(rest) = arg.strip_prefix("--pipe-in=") {
pipe_in = Some(rest.to_string());
} else if let Some(rest) = arg.strip_prefix("--pipe-out=") {
pipe_out = Some(rest.to_string());
}
}
let Some(pipe_in) = pipe_in else {
anyhow::bail!("runner: no pipe-in provided");
};
let Some(pipe_out) = pipe_out else {
anyhow::bail!("runner: no pipe-out provided");
};
// Open both pipe ends under guards first so a failure on the second open cannot leak the
// first HANDLE. Only after both opens succeed do we transfer ownership into `File`, which
// then becomes responsible for closing them.
let h_pipe_in = OwnedWinHandle::new(open_pipe(&pipe_in, FILE_GENERIC_READ)?);
let h_pipe_out = OwnedWinHandle::new(open_pipe(&pipe_out, FILE_GENERIC_WRITE)?);
let mut pipe_read = unsafe { File::from_raw_handle(h_pipe_in.into_raw() as _) };
let pipe_write = Arc::new(StdMutex::new(unsafe {
File::from_raw_handle(h_pipe_out.into_raw() as _)
}));
let req = match read_spawn_request(&mut pipe_read) {
Ok(v) => v,
Err(err) => {
let _ = send_error(
&pipe_write,
ErrorStage::ReadSpawnRequest,View on GitHub (pinned to 339751715c)
When it happens
Trigger: Thrown at codex-rs/windows-sandbox-rs/src/bin/command_runner/win.rs:554 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of openai/codex@339751715c (2026-08-25).
Data as JSON: /api/errors/5a93bfa7945cb5d2.
Report an issue: GitHub.