Back

Cloud cost

Object Storage Lifecycle Exception Cleanup: Close Prefix Holds After Projects End

Object storage lifecycle exception cleanup starts when a bucket prefix, container path, or dataset folder remains excluded from archival or deletion rules after the project that requested the hold ended. The exception may be a single lifecycle rule, label, prefix list, or compliance note, but it can keep terabytes in a hotter storage class than the data deserves.

The useful result is a retention decision that separates current legal or audit need from forgotten project caution. Cost cleanup is only safe when the data owner, retention owner, and recovery owner agree on what still needs to be kept.

Key takeaways

  • Review exception reason, prefix scope, data classification, last access, and retention policy together.
  • Narrow broad prefix holds before removing them entirely.
  • Preserve legal and audit holds until the authority that placed them closes the reason.
  • Test lifecycle policy changes on a small prefix or report mode where possible.
  • Prevent recurrence by making exceptions expire unless renewed.

Exception Inventory

FieldWhy it mattersCleanup signal
Prefix or object setShows exactly what data escapes lifecycle rulesScope is broader than the current need
Exception reasonLegal hold, audit, migration, rollback, analyticsReason has ended or moved elsewhere
Data classSensitive, customer, telemetry, build artifactRetention can follow normal class policy
Last access patternReads, restores, exports, downstream jobsNo active consumer needs hot storage

Do not use last modified date alone. Immutable logs and exports can be old by design.

Example Decision Record

lifecycle_exception_review:
  prefix: reports/acquisition-2024/
  current_rule: excluded_from_archive
  original_reason: finance reconciliation
  authority: finance_data_owner
  proposed_change: apply standard 90_day_hot_then_archive_policy

This record shows who can approve the change. It does not replace policy simulation or restore testing for data with recovery obligations.

Safe Cleanup Moves

First, narrow the exception to the exact prefixes that still have an approved hold. Then move eligible objects to the normal lifecycle class rather than deleting them. Remove custom restore scripts, dashboards, and documentation that described the old exception. Measure both storage reduction and policy consistency.

Do not rush exceptions tied to litigation, customer contracts, regulatory retention, month-end close, or incident investigations. Do not rush when downstream systems read objects by prefix patterns that lifecycle movement could slow or change.

Prevention

Make lifecycle exceptions require owner, reason, data class, approval authority, and expiration date. Add an automated report for exceptions expiring in the next review cycle so storage cleanup is a governance habit instead of an annual surprise.

FAQ

Should stale exceptions be deleted or archived first?

Archive first when retention still matters. Deletion should follow the approved data policy, not the cleanup team’s impatience.

Is a broad bucket exception ever acceptable?

Sometimes during migrations or legal holds, but it should have a short review window and a path back to prefix-level policy.