openai/codex · error · std::io::Error

socket closed while receiving frame header

Error message

socket closed while receiving frame header

What it means

Error "socket closed while receiving frame header" thrown in openai/codex.

Source

Thrown at codex-rs/shell-escalation/src/unix/socket.rs:129

                    (read, msg.control_len())
                };
                control.truncate(control_len);
                captured_control = true;
                Ok(read)
            }) {
                Ok(Ok(read)) => read,
                Ok(Err(err)) => return Err(err),
                Err(_would_block) => continue,
            }
        } else {
            match guard.try_io(|inner| inner.get_ref().recv(&mut header[filled..])) {
                Ok(Ok(read)) => read,
                Ok(Err(err)) => return Err(err),
                Err(_would_block) => continue,
            }
        };
        if read == 0 {
            return Err(std::io::Error::new(
                std::io::ErrorKind::UnexpectedEof,
                "socket closed while receiving frame header",
            ));
        }

        filled += read;
        assert!(filled <= LENGTH_PREFIX_SIZE);
        if filled == LENGTH_PREFIX_SIZE {
            let len_bytes = assume_init_slice(&header);
            let payload_len = u32::from_le_bytes(*len_bytes) as usize;
            let fds = extract_fds(assume_init(&control));
            return Ok((payload_len, fds));
        }
    }
    unreachable!("header loop always returns")
}

/// Read `message_len` bytes from a SOCK_STREAM socket.

View on GitHub (pinned to 339751715c)

When it happens

Trigger: Thrown at codex-rs/shell-escalation/src/unix/socket.rs:129 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/e9a4a89cbeb8b9a3. Report an issue: GitHub.