rustfs/rustfs · error · StorageError

VolumeNotEmpty

VolumeNotEmpty

Error message

Volume not empty

What it means

Sentinel StorageErr variant returned when deleting a volume (bucket directory) that still contains objects or metadata. It fires from the storage layer's volume-delete path after listing shows the directory is non-empty, guarding against accidental data loss during bucket removal.

Source

Thrown at crates/ecstore/src/error/mod.rs:97

    DiskAccessDenied,
    #[error("Drive is root")]
    DriveIsRoot,
    #[error("Unformatted disk")]
    UnformattedDisk,
    #[error("Corrupted format")]
    CorruptedFormat,
    #[error("Corrupted backend")]
    CorruptedBackend,
    #[error("Too many open files")]
    TooManyOpenFiles,
    #[error("maximum versions exceeded, please delete few versions to proceed")]
    MaxVersionsExceeded,
    #[error("inconsistent drive found")]
    InconsistentDisk,
    #[error("drive does not support O_DIRECT")]
    UnsupportedDisk,
    #[error("disk not a dir")]
    DiskNotDir,
    #[error("drive still did not complete the request")]
    DiskOngoingReq,
    #[error("path not found")]
    PathNotFound,
    #[error("bit-rot hash algorithm is invalid")]
    BitrotHashAlgoInvalid,
    #[error("Rename across devices not allowed, please fix your backend configuration")]
    CrossDeviceLink,
    #[error("less data available than what was requested")]
    LessData,
    #[error("more data was sent than what was advertised")]
    MoreData,
    #[error("outdated XL meta")]
    OutdatedXLMeta,
    #[error("part missing or corrupt")]
    PartMissingOrCorrupt,
    #[error("short write")]
    ShortWrite,

View on GitHub (pinned to 5dca076efe)

Solutions

  1. Refuse bucket deletion and surface BucketNotEmpty to the client per S3 semantics
  2. Verify all objects (including delete markers and incomplete multipart uploads) are removed before retrying DeleteBucket
  3. Audit lifecycle/ILM rules that may keep recreating objects under the prefix
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/ecstore/src/error/mod.rs:97 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/30e105d98cae6b7b. Report an issue: GitHub.