Short answer
Check the global file size limit in Storage Settings and the bucket’s own file size limit. Raise the one that is too low, up to your plan’s maximum. For files that will stay large, resize or compress them on the device. If the file goes through your own API first, check that layer’s body size limit too.
Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.
Which limit you hit, and the fix
01
The file is over the global limit
“For Free projects, the limit can't exceed 50 MB. On the Pro Plan and up, you can set this value to up to 500 GB.” Supabase docs, Storage file limits
Every bucket shares one global file size limit, set in Storage Settings. On Free it can’t exceed 50 MB. On Pro and up it can go to 500 GB.
02
The bucket has a lower limit
“Additionally, you can specify the maximum file size on a per bucket level but it can't be higher than this global limit.” Supabase docs, Storage file limits
A bucket can have its own size limit, which can be set when it is created, for example 1 MB for avatars. It can’t be higher than the global one. Check it in the bucket settings, or update it in code.
// server side, with the service role key // public is required by the call: keep it equal to the bucket's current value await supabase.storage.updateBucket('avatars', { public: true, // false would make a public bucket private fileSizeLimit: '10MB', });03
Photos and videos straight from the phone
Phone photos and videos are often far bigger than the app needs. Resize images and compress video on the device before upload, and check the size first so the user gets a clear message instead of a failed upload.
const MAX = 10 * 1024 * 1024; // match your bucket limit if (file.size > MAX) throw new Error('File is over 10 MB. Choose a smaller file.');04
The 413 comes from your own server
If the file goes through your own API route or a host with a request size cap, that layer can return 413 before Supabase sees the file. Upload from the client straight to Supabase Storage instead, for example with a signed upload URL.
05
The error is the limit, not a bug
“Verify the max-file-limit is equal or higher to the resource you are trying to upload, you can change this value on the Project Settings” Supabase docs, Storage error codes (EntityTooLarge)
Storage returns 413 with EntityTooLarge when the file is over a limit you control. Change the limit in Project Settings or the bucket, not the upload code.
Checked against the vendor’s docs on : Supabase docs: Storage file limits; Supabase docs: Storage error codes.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.See scope and start
“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
Related: Supabase Storage bucket not found · Supabase Storage bucket is public · Supabase Edge Function timeout · Supabase Storage InvalidKey