ArthaOps
PlatformTrustCase StudiesPricingDocs
Sign InStart Free
ZERO-AGENT READ-ONLY DEPLOYMENT // MULTI-CLOUD IAM & RBAC

Evaluate your multi-cloud environment in under 2 minutes.

Deploy the agentless read-only scanner with zero long-lived credentials stored. Real-time deterministic waste detection across 378 active multi-cloud rules.

Start Free ScanBook Demo
$curl -sSL https://arthaops.com/scan | sh
ArthaOps

Zero-Trust Multi-Cloud Cost Governance Platform. Continuous waste detection, deterministic math & automated remediation.

INSTITUTIONAL FINOPS // ZERO-TRUST ENGINE

01 PLATFORM

Platform OverviewControl RoomCloud TopologyDetector EngineAsset InventoryRemediation EngineSavings IntelligenceDetector CatalogPlatform ComparisonPricing

02 TRUST

Trust CenterSecurity ArchitectureCompliance MatrixSovereign Proxy Guarantee

03 RESOURCES

Engineering BlogSample Audit ReportDocumentationChangelogCase StudiesCustomer GuaranteesROI CalculatorGitHub Repository

04 COMPANY

About UsContact UsEnterprise Sales
45.0°W:117.0mmR:14.0mmH:53.0mmCL:298.0GAP:15.045.0°O-DIAM:117.0P-LOOP:38.0S-END:957.0117.0117.0117.0117.0117.0117.0117.0117.03.03.03.03.03.03.03.0P1P2P3P4P5P6P7P8P9⊕ DATUM-A (0,53)⊕ DATUM-B (957,0)OVERALL WIDTH: 957.00 mm53.00 mmDESIGNED BY ARTHAOPSMISSION CONTROL // CLASS-ATECH SINGULARITYSECTION 9 // ISO-128CAD DWG NO: AO-2026-M290 // SCALE 1:1 // TOLS: ±0.005mm // SHADER: WGL-V2 // CERTIFIED MAXIMUM HIGH-DENSITY CAD SCHEMATIC
© 2026 ArthaOps System Private Limited. All rights reserved.
SOC2 TYPE II READY // READ-ONLY IAM
Privacy PolicyTerms of ServiceCookie PolicyRefund PolicySystem Status
Back to Detector Directory
DET-S3-001AWS S3medium Severity
Production-Validated
Last Verified: 2026-10-12

AWS Incomplete S3 Multipart Uploads Detector

Expose abandoned, invisible multipart upload chunks in S3 buckets quietly accumulating standard S3 storage fees.

1. Detection Scope & Operational Boundaries

Every ArthaOps detector enforces strict epistemic honesty. We clearly separate what can be mathematically proven via agentless telemetry from what requires contextual human judgement.

What This Detector Identifies

  • Multipart upload parts that were initiated but never completed or aborted, lingering for $\ge 7$ days.
  • Incomplete upload parts invisible to standard `aws s3 ls` queries and the default AWS Management Console bucket object listing.
  • Buckets lacking an explicit `AbortIncompleteMultipartUpload` lifecycle policy rule.

What It Cannot Establish Alone

  • Whether a large, multi-day data migration job (e.g. multi-terabyte database transfer over a constrained connection) is still actively transmitting parts.
  • The exact application component responsible for the broken upload script without CloudTrail Data Events enabled.

2. Telemetry & Evidence Requirements

ArthaOps operates strictly via Plane 1 (Read-Only Discovery). The following CloudFormation / IAM permissions and CloudWatch metrics are evaluated:

Target AWS Resource Type: AWS::S3::Bucket
Required Read-Only IAM Permissions:
s3:ListBucketMultipartUploadss3:AbortMultipartUploads3:GetLifecycleConfigurations3:PutLifecycleConfiguration
Evaluated Telemetry Metrics:
AWS/S3: BucketSizeBytes (StandardStorage)AWS/S3: NumberOfObjects (StorageType)
Evidence Certification: Audited using S3 ListMultipartUploads API; verified that incomplete parts remain hidden from standard 'aws s3 ls' and default console views.
Production-Validated

Verification Protocol: Tested against synthetic buckets with multi-part uploads initiated and interrupted via AWS CLI and boto3.

Validation Context: Validated in production data engineering and backup buckets discovering terabytes of ghost multipart storage.

3. Reproducible AWS CLI Verification Recipe

List in-flight multipart uploads in a target S3 bucket to inspect initiated dates and keys.

bash (read-only verification)
# List incomplete multipart uploads in a bucket
aws s3api list-multipart-uploads \
  --bucket production-backups-bucket \
  --query "Uploads[*].{Key:Key,UploadId:UploadId,Initiated:Initiated,StorageClass:StorageClass}" \
  --output table

# Check if the bucket has an active lifecycle configuration
aws s3api get-bucket-lifecycle-configuration \
  --bucket production-backups-bucket \
  --query "Rules[?AbortIncompleteMultipartUpload!=null]" \
  --output json
Representative CLI Output
--------------------------------------------------------------------------------------------------------------------------
|                                                  ListMultipartUploads                                                  |
+----------------------+-------------------------------------------------------+---------------+-------------------------+
|      Initiated       |                         Key                           | StorageClass  |        UploadId         |
+----------------------+-------------------------------------------------------+---------------+-------------------------+
| 2026-07-04T02:11:00Z | database-dumps/postgres-full-2026-07-04.tar.gz        | STANDARD      | 2Yx9QpL0m...abcd12345   |
+----------------------+-------------------------------------------------------+---------------+-------------------------+

💡 Incomplete uploads initiated weeks or months ago represent broken processes. Their uploaded parts occupy full S3 storage and cannot be downloaded as objects.

4. Transparent Economic Model

Potential Monthly Waste
₹1,932 / month per TB ($23.00/TB-mo)
Ghost Storage (GB) × $0.023/GB-mo (S3 Standard in ap-south-1). 1,000 GB = $23.00/mo = ₹1,932.00/mo at ₹84.0/USD.
AWS Mumbai (ap-south-1) Rate
$0.023 per GB-month for first 50 TB S3 Standard storage
US East (N. Virginia) Rate
$0.023 per GB-month for first 50 TB S3 Standard storage
Gross Provisioned Spend
$0.023 / GB-month for S3 Standard storage ($23.00 per 1,000 GB in ap-south-1)
Total baseline committed spend
Avoidable Incremental Waste
₹1,932 / month per TB of uncompleted parts (100% avoidable since incomplete parts cannot be assembled into objects)
Redundant / unutilized delta
Realized Net Savings Potential
₹19,320 / month for 10 TB of zombie parts; scales linearly with ghost storage volume
Net recovery after retention/cutover
Pricing Source & Validity: Official AWS S3 Pricing (ap-south-1 and us-east-1) (Retrieved: October 2026)
Model Assumptions
  • Stored parts are charged at standard regional S3 storage rates.
  • Monthly waste scales linearly with total gigabytes of uncompleted parts.
  • Zero API request cost included in storage calculation.
Explicit Exclusions
  • Data retrieval fees and cross-region replication fees do not apply to uncompleted parts.

5. False-Positive Scenarios & Operational Risks

Never delete or terminate cloud resources blindly. These validated architectural scenarios must be reviewed before initiating remediation:

Documented False-Positive Scenarios

  • In-Flight Large Ingestion: A multi-terabyte data migration streaming over a slow WAN link may legitimately require 48–72 hours to finalize all parts.
  • Resumable Upload Workflows: Specialized desktop or mobile client upload protocols that pause and resume over multiple days.

Blast Radius & Remediation Risks

  • Upload Termination: Aborting an in-progress multipart upload immediately purges all transmitted parts. The uploading client must re-transmit from part 1.
  • Mitigation: Configure a 7-day grace window before automated deletion to protect active transfers.

6. Remediation Procedure & Rollback Runbook

Follow this ordered sequence of verified AWS CLI actions to remediate the resource with complete rollback availability:

1

Abort Specific Orphaned Uploads

Immediately purge parts for an abandoned upload using its Key and UploadId.

aws cli command
aws s3api abort-multipart-upload --bucket production-backups-bucket --key database-dumps/postgres-full-2026-07-04.tar.gz --upload-id 2Yx9QpL0m...abcd12345
2

Deploy Universal 7-Day Lifecycle Rule

Apply an automated bucket lifecycle policy that instructs S3 to clean up uncompleted parts after 7 days automatically.

aws cli command
cat << 'EOF' > s3-lifecycle.json
{
  "Rules": [
    {
      "ID": "AutoAbortIncompleteMultipartUploadsAfter7Days",
      "Status": "Enabled",
      "Filter": {},
      "AbortIncompleteMultipartUpload": {
        "DaysAfterInitiation": 7
      }
    }
  ]
}
EOF
aws s3api put-bucket-lifecycle-configuration --bucket production-backups-bucket --lifecycle-configuration file://s3-lifecycle.json

Forensic Rollback Procedure

Aborted parts cannot be recovered. If a client was actively transmitting, the client application simply initiates a new multipart upload.

🔒 ArthaOps Assurance: ArthaOps recommends applying a declarative bucket lifecycle policy with a 7-day retention buffer rather than manual ad-hoc part deletions.

Irreversible Actions & Rollback Limitations

Aborted parts are immediately deleted from S3 storage and cannot be recovered. Ensure active transfers are protected via the 7-day retention grace threshold.

SAMPLE FINDING (ILLUSTRATIVE)

How This Appears in the ArthaOps Control Plane

s3://corp-analytics-raw-ingestproductionap-south-1
₹24,343 / mo ($289.80)
ESTIMATED RECOVERABLE

12.6 TB of orphaned multipart upload parts detected across 42 abandoned upload sessions with no lifecycle policy configured.

Bucket Name
corp-analytics-raw-ingest
Total Orphaned Parts
1,420 parts
Ghost Storage Volume
12,600 GB (12.6 TB)
Oldest Initiated Part
94 days ago
Lifecycle Rule Active
False (missing AbortIncompleteMultipartUpload)

Test Your Infrastructure in 180 Seconds

Explore our zero-setup interactive sample report covering real Mumbai findings, or launch a 100% read-only agentless scan across your AWS environment.

Explore Sample Audit Report (Zero Setup)Run Free Read-Only CloudFormation Scan →