S3 EntityTooLarge: Your proposed upload exceeds the maximum allowed size
A single PUT can be at most 5 GB (and presigned POST policies can set lower limits); larger files must use multipart upload.
Seen on:
AWS
Meaning
aws s3 cp and high-level SDK transfer managers switch to multipart automatically, but raw PutObject calls and presigned PUT URLs don’t. Presigned POST with content-length-range also returns EntityTooLarge when the file exceeds the policy.
Common causes
- Single PutObject over 5 GB
- Presigned POST policy content-length-range smaller than the file
- Using a low-level API instead of the transfer manager
⚡ Quick fix
- Use multipart upload (aws s3 cp, TransferManager, Upload from @aws-sdk/lib-storage)
- Raise the policy’s content-length-range
- Compress or split the file
Detailed fix by platform
Node.js
- javascript
import { Upload } from "@aws-sdk/lib-storage"; await new Upload({ client: s3, params: { Bucket, Key, Body: fs.createReadStream(path) } }).done();
How to diagnose
- Size — File size vs 5 GB / policy limit
- API — PutObject or multipart?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
Most viewed in AWS
Other ways to find it
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026