S3 Incomplete Multipart Uploads
CostLens flags S3 buckets with no lifecycle rule to abort incomplete multipart uploads — orphaned parts accrue storage charges indefinitely.
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
- Open the recommendation to see the bucket and estimated wasted storage.
- Apply the fix — CostLens adds an
AbortIncompleteMultipartUploadlifecycle rule (default: abort after 7 days). - 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
| Severity | Estimated 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.