EntityTooLarge ☁️ AWS

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

  1. Use multipart upload (aws s3 cp, TransferManager, Upload from @aws-sdk/lib-storage)
  2. Raise the policy’s content-length-range
  3. Compress or split the file

Detailed fix by platform

Node.js

  1. javascript
    import { Upload } from "@aws-sdk/lib-storage";
    await new Upload({ client: s3, params: { Bucket, Key, Body: fs.createReadStream(path) } }).done();

How to diagnose

  1. Size — File size vs 5 GB / policy limit
  2. 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:

🧠 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.