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 12, 2026|Editorial standard: source-backed technical guidance
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).
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.
Decision Support
Compare Guide
HTTP 400 vs 422: Bad Request vs Unprocessable Content
Fix API payload issues faster by using 400 for malformed syntax and 422 for semantic validation failures, so clients correct format before business rules.
Playbook
CORS Error Fix Playbook (Preflight / Origin / Credentials)
Use this playbook to separate browser-enforced cross-origin policy failures from server-side CORS header and route defects and apply strict origin and credential controls safely.
Playbook
Validation Failure Playbook (400 / 422 / INVALID_ARGUMENT)
Use this playbook to separate malformed-request failures from semantic validation failures, then fix request contracts without broad server-side bypasses.
Official References
Provider Context
This guidance is specific to AWS services. Always validate implementation details against official provider documentation before deploying to production.