rustfs/rustfs · error · PrepareSelectObjectSnapshotError

SelectObjectContent object has invalid logical size {size}

Error message

SelectObjectContent object has invalid logical size {size}

What it means

PrepareSelectObjectSnapshotError::InvalidSize: the object's logical size recorded in metadata is not usable for snapshotting (e.g. negative or nonsensical), so ranges over it cannot be trusted; indicates corrupted metadata.

Source

Thrown at crates/ecstore/src/store/object.rs:862

                            return Err(StorageError::PrefixAccessDenied(bucket.to_string(), object_info.name.clone()));
                        }
                    }
                    if !page.is_truncated {
                        break;
                    }
                    let next_marker = page
                        .next_marker
                        .ok_or_else(|| Error::other("recursive delete version scan did not return a continuation marker"))?;
                    if marker.as_ref() == Some(&next_marker) && version_marker == page.next_version_idmarker {
                        return Err(Error::other("recursive delete version scan did not advance"));
                    }
                    marker = Some(next_marker);
                    version_marker = page.next_version_idmarker;
                }
            }
        }
    }
    delete_prefix_with_tier_delete_journal(store, bucket, object, opts, tier_journal_api).await
}

/// A GET whose object identity has been resolved while its namespace read lock
/// remains held, but whose body reader has not been constructed yet.
///
/// The application can evaluate request preconditions and cache coordination
/// against [`Self::object_info`] before consuming this value. Dropping it
/// releases the read lock without constructing a body reader.
pub struct PreparedGetObjectReader {
    pool: Arc<Sets>,
    bucket: String,
    object: String,
    range: Option<HTTPRangeSpec>,
    headers: HeaderMap,
    opts: ObjectOptions,
    metadata: crate::set_disk::PreparedGetObjectMetadata,
    read_lock_guard: Option<ObjectLockDiagGuard>,
}

View on GitHub (pinned to 5dca076efe)

Solutions

  1. Heal the object metadata from consistent replicas
  2. Reject the Select request as invalid object state
  3. Verify xl.meta size fields on the affected disks
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/ecstore/src/store/object.rs:466 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/437bf8157b6223b3. Report an issue: GitHub.