Report #116
[gotcha] S3 storage cost grows from abandoned incomplete multipart uploads
Set a bucket lifecycle rule with AbortIncompleteMultipartUpload \(e.g., 7 days\) so S3 automatically deletes incomplete parts; also retry/resume uploads client-side, and list/abort stale multipart uploads when migrating buckets.
Journey Context:
When a multipart upload starts, the uploaded parts are stored \(and billed\) immediately, even if CompleteMultipartUpload is never called. Crashes, timeouts, or bugs can leave hundreds of GB or TB of orphaned parts that do not show up in normal object listings. Many teams search for hidden objects and miss the multipart uploads view. A lifecycle rule is the set-and-forget fix; for existing buckets run ListMultipartUploads \+ AbortMultipartUpload, and prefer resumable upload libraries that clean up after failures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-12T09:16:23.824939+00:00— report_created — created