CostLensS3 Incomplete Multipart Uploads

S3 Incomplete Multipart Uploads

CostLens flags S3 buckets with no lifecycle rule to abort incomplete multipart uploads — orphaned parts accrue storage charges indefinitely.

Updated June 20261 min read

Failed or abandoned multipart uploads leave parts behind that are billed as storage but never appear as objects — an invisible leak you can't see in the bucket listing. A one-line lifecycle rule cleans them up automatically. CostLens flags buckets missing that rule.

How it works

CostLens lists your buckets

Calls s3:ListAllMyBuckets and resolves each bucket's region.

Checks the lifecycle configuration

Reads the bucket's lifecycle rules and looks for an AbortIncompleteMultipartUpload rule.

Flags buckets without the rule

Flags buckets above a minimum size that have no abort rule, estimating the storage held by orphaned parts.

What to do

  1. Open the recommendation to see the bucket and estimated wasted storage.
  2. Apply the fix — CostLens adds an AbortIncompleteMultipartUpload lifecycle rule (default: abort after 7 days).
  3. The rule applies going forward and to existing incomplete uploads on their next evaluation.

Safe, reversible

The lifecycle rule only removes incomplete upload parts — it never touches completed objects. You can remove the rule any time from the S3 console.

Severity levels

SeverityEstimated monthly savings
critical>$500
high$100–$500
medium$20–$100
low<$20

Required IAM permissions

Detection uses ReadOnlyAccess; the fix adds lifecycle write — included in the CostLens policies from AWS Accounts:

s3:ListAllMyBuckets
s3:GetBucketLifecycleConfiguration
s3:PutLifecycleConfiguration

Limitations

  • Storage held by incomplete uploads is estimated; actual reclaimed space depends on how many orphaned parts exist.
  • Buckets below the minimum-size threshold are skipped.
CostLens
Previous
Lambda Timeout/Throttle
CostLens
Next
S3 Noncurrent Version Cleanup