Report #13834
[gotcha] S3 storage costs increasing despite no visible objects; incomplete multipart uploads hidden from ListObjectsV2
Configure a Lifecycle rule with 'AbortIncompleteMultipartUpload' action \(or use 'aws s3api abort-multipart-upload' manually\). Set 'DaysAfterInitiation' to 1 or 7. Do not rely on standard expiration rules for incomplete MPUs.
Journey Context:
When initiating a multipart upload, S3 creates an entry with an UploadId. Until 'CompleteMultipartUpload' or 'AbortMultipartUpload' is called, the parts \(or just the metadata if no parts uploaded yet\) consume storage billed at standard rates. These incomplete uploads are invisible to 'ListObjectsV2' or the console's object list; they only appear via 'ListMultipartUploads'. Users see a bucket with '0 objects' but non-zero storage costs. Standard lifecycle 'Expiration' rules do NOT target incomplete multipart uploads; you must explicitly use the 'AbortIncompleteMultipartUpload' lifecycle action. Many cost optimization audits miss this.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T19:51:13.045902+00:00— report_created — created