sxyazi/yazi · error · io::Error
timeout is too large for the platform
Error message
timeout is too large for the platform
What it means
Error "timeout is too large for the platform" thrown in sxyazi/yazi.
Source
Thrown at yazi-term/src/source/unix.rs:152
}
unsafe { rustix::event::select(nfds, Some(&mut set), None, None, timeout) }?;
let mut result = [false; 3];
for (fd, ready) in fds.iter().copied().zip(result.iter_mut()) {
if FdSetIter::new(&set).any(|x| x == fd) {
*ready = true;
}
}
Ok(result)
}
#[cfg(target_os = "macos")]
// rustix rounds nanoseconds up to microseconds for select(), which can produce tv_usec =
// 1_000_000.
let timeout = timeout.map(|t| Duration::new(t.as_secs(), t.subsec_micros() * 1000));
let timespec = timeout.map(|t| t.try_into()).transpose().map_err(|_| {
io::Error::new(io::ErrorKind::InvalidInput, "timeout is too large for the platform")
})?;
#[cfg(not(target_os = "macos"))]
return poll3(fds, timespec.as_ref());
#[cfg(target_os = "macos")]
return select3(fds, timespec.as_ref());
}
View on GitHub (pinned to 441b332de8)
Solutions
- Use a smaller timeout value that fits the platform's timer representation (check the duration passed to the poll).
When it happens
Trigger: Thrown at yazi-term/src/source/unix.rs:152 when the library encounters an invalid state.
Common situations: Polling with a timeout value that exceeds what the platform's poll/ppoll interface can represent.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
AI-assisted analysis of sxyazi/yazi@441b332de8 (2026-08-19).
Data as JSON: /api/errors/a448f8d11857fbf2.
Report an issue: GitHub.