IncompleteBody
AWS IncompleteBody (Incomplete Body) means the number of bytes sent is lower than the Content-Length header value. In Amazon S3, this error returns HTTP 400.
Last reviewed: February 2, 2026|Source-backed guidance under our editorial policy
Start Here
Use the closest compare guide, playbook, or adjacent error page to narrow the decision faster before you start changing production systems.
This page is part of the Error Reference library. Learn more about the project or report a correction.
What Does Incomplete Body Mean?
S3 terminates the request as truncated payload, so the write is discarded and upload-dependent workflows fail until byte-count integrity is restored.
Common Causes
- -Actual transmitted bytes are fewer than Content-Length header value.
- -Client stream closes early or is truncated by network path.
- -Proxy/LB timeouts interrupt upload before full payload is delivered.
How to Fix Incomplete Body
- 1Ensure Content-Length matches the exact payload byte count.
- 2Stabilize upload stream handling and retry with full-body tracing.
- 3Use multipart upload for large files to reduce truncation risk.
Step-by-Step Diagnosis for Incomplete Body
- 1Log expected vs transmitted bytes for each upload request.
- 2Inspect network/proxy timeout and reset events around failures.
- 3Capture wire payload to confirm final-byte delivery.
Payload Length Integrity Checks
- -Audit Content-Length generation against actual outbound bytes (example: UTF-16 string length used instead of byte length for UTF-8 payload).
- -Trace stream read/close lifecycle to detect premature EOF (example: upstream file handle closes before final chunk is written).
Transport Truncation Diagnostics
- -Inspect proxy and load balancer timeout/reset behavior on large request bodies (example: gateway max-body timeout cuts connection at 30 seconds).
- -Compare client-side sent-byte metrics with server-side observed bytes (example: network appliance strips trailing chunk during TLS re-encryption).
Seen in Production
Upload stream closes early under network pressure
Frequency: common
Example: Client advertises full Content-Length but connection resets before all bytes are sent.
Fix: Add resilient stream handling with retry-aware resume or multipart segmentation.
Proxy timeout truncates large request bodies intermittently
Frequency: rare
Example: Edge gateway terminates long-running uploads before payload completion.
Fix: Tune timeout budgets for upload paths and monitor upstream connection reset rates.
Debugging Tools
- -Upload byte-count telemetry
- -Request/response capture tooling
- -Network timeout/reset logs
- -AWS CLI --debug
How to Verify the Fix
- -Repeat upload and confirm IncompleteBody is eliminated.
- -Validate transmitted byte count matches Content-Length exactly.
- -Confirm object size/checksum are correct after completion.
How to Prevent Recurrence
- -Enforce payload-length checks before sending upload requests.
- -Instrument transmitted-byte metrics in upload clients.
- -Tune timeout/retry settings for large upload paths.
Pro Tip
- -compute and log Content-Length from the exact byte buffer handed to the HTTP client, then assert sent-byte parity in integration tests.
Official References
Provider Context
This guidance is specific to AWS services. Always validate implementation details against official provider documentation before deploying to production.