Supabase Storage Upload Failed
Workaround available Web, server (all SDKs) Updated October 21, 2026
Quick answer
Most upload failures are a missing INSERT policy on storage.objects, a file larger than the bucket limit (413), or an invalid key/MIME type (400).
Most likely fix: Add a storage policy.
Symptoms
Upload returns 'new row violates row-level security policy', 'Payload too large' (413), InvalidKey or InvalidMimeType (400).
Why it happens
- No INSERT policy on storage.objects for the bucket
- upsert: true without an UPDATE policy
- File exceeds bucket or global size limit
- Object path contains invalid characters
- MIME type not allowed by the bucket
How to fix it
Try these in order — the most common fix is first.
1. Add a storage policy
- Dashboard > Storage > Policies
- Create an INSERT policy on storage.objects scoped to your bucket_id
- Add UPDATE and SELECT policies if you use upsert
2. Raise the file size limit
- Storage > select bucket > Edit bucket
- Set the maximum file size; for large files use resumable (TUS) uploads
3. Clean the object key
- Remove special characters and spaces from the file path
- Pass bucket name and path in the correct arguments
4. Set a valid contentType
- Pass contentType (e.g. image/jpeg) in the upload options
- Make sure it's in the bucket's allowed MIME types
This guide also covers
- supabase storage upload failed
- supabase storage rls policy
- supabase payload too large
- supabase storage invalid key
Still not working?
If Supabase keeps failing, you're not alone. See every Supabase problem users report or the alternatives people switch to.
Other Supabase errors
- Supabase Project Paused
- Supabase Max Client Connections Reached
- Supabase 'New Row Violates Row-Level Security Policy' Error
- Supabase Confirmation Email Not Sending
- Supabase Auth Redirects to Localhost
- Supabase 'Invalid Refresh Token: Refresh Token Not Found'
- Supabase Edge Function 546 WORKER_LIMIT Error
- Supabase 'Canceling Statement Due to Statement Timeout'
- Supabase Realtime Not Working
- Supabase Database Connection 'Network Is Unreachable'
- Supabase Start Not Working (Docker Container Unhealthy)