rustfs/rustfs · error · StorageError::FaultyDisk
0x02
0x02
Error message
Faulty disk
What it means
StorageError variant in the top-level storage error enum marking a local drive as unhealthy: the drive repeatedly failed I/O, timed out, or failed health checks and is excluded from read/write quorum calculations until it recovers. It is the StorageError-level mirror of DiskError::FaultyDisk and typically leads to healing being scheduled for objects on that drive.
Source
Thrown at crates/ecstore/src/error/mod.rs:40
pub type Error = StorageError;
pub type Result<T> = core::result::Result<T, Error>;
/// Keeps high-cardinality diagnostic detail in the error source while making
/// the rendered `io::Error` stable for quorum aggregation.
#[derive(Debug)]
struct StableIoContextError {
message: &'static str,
source: Box<dyn std::error::Error + Send + Sync>,
}
impl std::fmt::Display for StableIoContextError {
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str(self.message)
}
}
impl std::error::Error for StableIoContextError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
Some(self.source.as_ref())
}
}
pub(crate) fn stable_io_error<E>(message: &'static str, source: E) -> std::io::Error
where
E: Into<Box<dyn std::error::Error + Send + Sync>>,
{
std::io::Error::other(StableIoContextError {
message,
source: source.into(),
})
}
/// Storage layer error type covering disk, volume, bucket, object, multipart,
/// erasure-coding, and operational error conditions.
///View on GitHub (pinned to 5dca076efe)
Solutions
- Check drive health (SMART) and replace failing hardware
- Verify cabling/controller issues if the disk is intermittently failing
- After replacing the drive, re-format and let healing rebuild data
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/ecstore/src/error/mod.rs:40 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rustfs/rustfs@5dca076efe (2026-08-20).
Data as JSON: /api/errors/c0173f440c01c5e9.
Report an issue: GitHub.