openai/codex · error · io::Error
file read handle `{handle_id}` already exists
Error message
file read handle `{handle_id}` already exists What it means
Error "file read handle `{handle_id}` already exists" thrown in openai/codex.
Source
Thrown at codex-rs/exec-server/src/file_read.rs:31
pub(crate) bytes: Vec<u8>,
pub(crate) eof: bool,
}
#[derive(Clone, Default)]
pub(crate) struct FileReadHandleManager {
handles: Arc<Mutex<HashMap<String, Arc<File>>>>,
}
impl FileReadHandleManager {
pub(crate) async fn open(
&self,
handle_id: String,
file: tokio::fs::File,
) -> io::Result<String> {
let file = Arc::new(file.into_std().await);
let mut handles = self.handles.lock().await;
if handles.contains_key(&handle_id) {
return Err(io::Error::new(
io::ErrorKind::InvalidInput,
format!("file read handle `{handle_id}` already exists"),
));
}
if handles.len() >= MAX_OPEN_FILE_READS {
return Err(io::Error::new(
io::ErrorKind::InvalidInput,
format!("at most {MAX_OPEN_FILE_READS} file reads may be open per connection"),
));
}
handles.insert(handle_id.clone(), file);
Ok(handle_id)
}
pub(crate) async fn read_block(
&self,
handle_id: &str,
offset: u64,View on GitHub (pinned to 339751715c)
Solutions
- Use a unique handle_id, or close the existing file read first.
When it happens
Trigger: Thrown at codex-rs/exec-server/src/file_read.rs:31 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/043fa817297942f8.
Report an issue: GitHub.