# Unexpired non-current object versions in S3

Canonical: https://www.pointfive.co/efficiency-hub/inefficiencies/unexpired-non-current-object-versions-in-s3

When S3 versioning is enabled but no lifecycle rules are defined for non-current objects, outdated versions accumulate indefinitely.

By: Brendan McFarland

[Cloud Efficiency Hub](https://www.pointfive.co/efficiency-hub) 

# Unexpired Non-Current Object Versions in S3

The short version

When S3 versioning is enabled but no lifecycle rules are defined for non-current objects, outdated versions accumulate indefinitely.

[Brendan McFarland](https://www.linkedin.com/in/brendan-mcfarland-69522b7a/)

Staff, Cloud Efficiency and Analytics @ Datadog

AWS service

[AWS S3](https://www.pointfive.co/efficiency-hub/cloud-services/aws-s3)

Category

[Storage](https://www.pointfive.co/efficiency-hub/service-category/storage)

Reference

CER-0237

Type

Excessive Data Retention

## Explanation

Why the waste happens and who it affects.

These non-current versions are rarely accessed but continue to incur storage charges. Over time, this leads to significant hidden costs, particularly in buckets with frequent object updates or automated data pipelines. Proper lifecycle management is required to limit or expire obsolete versions.

## Billing model

The pricing dimensions that drive this cost.

S3 charges for all object versions retained in a bucket, including non-current versions. Each version consumes full storage capacity and accrues charges until explicitly deleted or transitioned by a lifecycle policy.

## How to detect

4 checks to find it in your estate.

- Review S3 buckets with versioning enabled to determine if lifecycle policies are applied to manage non-current versions

- Assess storage growth patterns and identify buckets where non-current versions represent a large share of total usage

- Confirm whether retained non-current versions are actively used or required for compliance purposes

- Evaluate consistency of versioning and lifecycle policy practices across production and non-production buckets

## How to fix

4 ways to remove the waste.

- Implement lifecycle policies to expire or transition non-current versions after an appropriate retention period

- Tailor policies by bucket or prefix to align with business, compliance, or recovery requirements

- Retain only the number of historical versions necessary for recovery or auditing; remove excess versions automatically

- Periodically review lifecycle rules to ensure alignment with evolving requirements and prevent reaccumulation

## Documentation

Vendor references for pricing and configuration.

- [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html  docs.aws.amazon.com](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)

- [https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html  docs.aws.amazon.com](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html)

## Related inefficiencies

[Browse the library](https://www.pointfive.co/efficiency-hub)

- AWS S3  CER-0334

### [Excessive S3 Request Costs from Filesystem-Oriented I/O Patterns](https://www.pointfive.co/efficiency-hub/inefficiencies/excessive-s3-request-costs-from-filesystem-oriented-i-o-patterns)

Amazon S3 bills for nearly every API request - LIST, HEAD, GET, PUT, COPY, and POST - independently of storage charges (DELETE and CANCEL requests are free). Workloads originally designed for locally-provisioned storage, where listing a...

Storage

- AWS S3  CER-0307

### [S3 Standard - Infrequent Access Used Where Intelligent Tiering Would Be Cheaper](https://www.pointfive.co/efficiency-hub/inefficiencies/s3-standard-ia-used-where-intelligent-tiering-would-be-more-cost-effective)

Organizations often use the Standard - Infrequent Access (Standard-IA) storage class based on documentation and code that predate 2021 updates to the Intelligent Tiering storage class. Intelligent Tiering became suitable as an initial S3...

Storage

- AWS S3  CER-0303

### [Orphaned Cloud Storage from Dropped External Delta Tables in Databricks](https://www.pointfive.co/efficiency-hub/inefficiencies/orphaned-cloud-storage-from-dropped-external-delta-tables-in-databricks)

When external Delta tables are dropped from Databricks Unity Catalog or the legacy Hive metastore, only the table metadata is removed - the underlying data files in cloud object storage (such as S3, ADLS, or GCS) remain untouched and...

Storage

---
Source: the public page above. Product screenshots and illustrative interfaces are examples, not live customer data.

