{"record":{"id":"c0173f440c01c5e9","repo":"rustfs/rustfs","slug":"0x02","errorCode":"0x02","errorMessage":"Faulty disk","messagePattern":"Faulty disk","errorType":"exception","errorClass":"StorageError::FaultyDisk","httpStatus":null,"severity":"error","filePath":"crates/ecstore/src/error/mod.rs","lineNumber":40,"sourceCode":"\npub type Error = StorageError;\npub type Result<T> = core::result::Result<T, Error>;\n\n/// Keeps high-cardinality diagnostic detail in the error source while making\n/// the rendered `io::Error` stable for quorum aggregation.\n#[derive(Debug)]\nstruct StableIoContextError {\n    message: &'static str,\n    source: Box<dyn std::error::Error + Send + Sync>,\n}\n\nimpl std::fmt::Display for StableIoContextError {\n    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        formatter.write_str(self.message)\n    }\n}\n\nimpl std::error::Error for StableIoContextError {\n    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {\n        Some(self.source.as_ref())\n    }\n}\n\npub(crate) fn stable_io_error<E>(message: &'static str, source: E) -> std::io::Error\nwhere\n    E: Into<Box<dyn std::error::Error + Send + Sync>>,\n{\n    std::io::Error::other(StableIoContextError {\n        message,\n        source: source.into(),\n    })\n}\n\n/// Storage layer error type covering disk, volume, bucket, object, multipart,\n/// erasure-coding, and operational error conditions.\n///","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/rustfs/rustfs/blob/5dca076efed96e7b842de07c4c2111035ae7c7a2/crates/ecstore/src/error/mod.rs#L22-L58","documentation":"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.","triggerScenarios":"Thrown at crates/ecstore/src/error/mod.rs:40 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5dca076efed96e7b842de07c4c2111035ae7c7a2","analyzedAt":"2026-08-20T21:57:04.799Z","contentChangedAt":"2026-08-20T21:57:04.799Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}