rustfs/rustfs · error · BucketMetadataError

Io error: {0}

Error message

Io error: {0}

What it means

The Io variant of BucketMetadataError wraps std::io::Error from bucket metadata load/save. It fires when the underlying metadata file read or write fails (permissions, missing bucket dir, disk error); the real cause is in the wrapped io::Error.

Source

Thrown at crates/ecstore/src/bucket/error.rs:36

pub enum BucketMetadataError {
    #[error("tagging not found")]
    TaggingNotFound,
    #[error("bucket policy not found")]
    BucketPolicyNotFound,
    #[error("bucket object lock not found")]
    BucketObjectLockConfigNotFound,
    #[error("bucket lifecycle not found")]
    BucketLifecycleNotFound,
    #[error("bucket SSE config not found")]
    BucketSSEConfigNotFound,
    #[error("bucket quota config not found")]
    BucketQuotaConfigNotFound,
    #[error("bucket replication config not found")]
    BucketReplicationConfigNotFound,
    #[error("bucket remote target not found")]
    BucketRemoteTargetNotFound,

    #[error("Io error: {0}")]
    Io(std::io::Error),
}

impl BucketMetadataError {
    pub fn other<E>(error: E) -> Self
    where
        E: Into<Box<dyn std::error::Error + Send + Sync>>,
    {
        BucketMetadataError::Io(std::io::Error::other(error))
    }
}

impl From<Error> for BucketMetadataError {
    fn from(e: Error) -> Self {
        match e {
            Error::Io(e) => e.into(),
            _ => BucketMetadataError::other(e),
        }

View on GitHub (pinned to 35af688cd9)

Solutions

  1. Inspect the inner io::Error kind for the actual OS failure
  2. Check bucket metadata path permissions and drive health
  3. Distinguish I/O failure from the typed NotFound sentinels before mapping to S3 errors
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at crates/ecstore/src/bucket/error.rs:36 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rustfs/rustfs@35af688cd9 (2026-08-20). Data as JSON: /api/errors/edb68aa93e7eb05e. Report an issue: GitHub.