Supabase storage quota in a Lovable app
When uploads start failing or images stop loading, the app has usually hit a storage, egress or file size limit. Here is how to tell which one, and what fixes it.
Updated November 6, 2026: First published.

As of November 6, 2026, when a Lovable app on Supabase stops accepting uploads or stops serving files, one of three limits is usually behind it: the file is bigger than the allowed file size, the organization has used its storage size quota, or it has used its egress quota, which covers files downloaded by your users.
On the Free plan, or on Pro with the Spend Cap on, Supabase emails the billing address, gives a grace period, and then may restrict the projects. With the cap off, usage keeps running and is billed. On Lovable Cloud there is no Supabase quota to hit: file storage and network traffic use run credits, and the backend pauses when credits run out.
This guide is for founders whose Lovable app has started failing on uploads, images or downloads, or who got a usage warning email. It covers the limits that apply, how to find which one you hit, and how to fix it. Platform facts come from Supabase's and Lovable's documentation, listed under Sources.
What storage limits apply to a Lovable app on Supabase?
Four limits matter: the maximum file size, the storage size quota, the egress quota, and the image transformations quota. All quotas are per organization and shared by every project in it, and they reset at the start of each billing cycle.
| Limit | Free plan | Pro and Team plans |
|---|---|---|
| Maximum file size (global setting) | Up to 50 MB | Up to 500 GB |
| Storage size quota | 1 GB | 100 GB, then billed per GB |
| Egress quota (uncached / cached) | 5 GB / 5 GB | 250 GB / 250 GB, then billed per GB |
| Image transformations quota | Not listed in the usage docs | 100 origin images, then billed per 1,000 |
A few details explain most surprises. Storage size is measured in GB-hours, so the quota compares your average size across the billing period, not the size right now. Deleting files late in the cycle lowers the average only slowly, and may not clear a restriction until the next cycle. Egress already served cannot be undone either; fixes only lower future egress.
Image transformations count distinct original images resized in the cycle, however many sizes you make of each. Cached egress, served from Supabase's Smart CDN, has its own quota separate from uncached egress.
What happens when the app goes over quota?
It depends on the plan and the Spend Cap. Supabase gives a warning and a grace period first in most cases, then restrictions can apply to every project in the organization.
- Free plan, or Pro with the Spend Cap on: you get an email to your billing address and a grace period. If you keep exceeding the quota, Fair Use Policy restrictions can apply.
- Pro with the Spend Cap off, Team and Enterprise: projects keep running and the overage is billed.
- Restrictions can include pausing projects, switching databases to read-only, and answering every API request with a 402 status code. That is when uploads fail and files stop loading.
- After a grace period ends, Supabase says you will not get another one if you exceed limits again; the warning clears after staying under limits for multiple billing cycles.
- Usage restrictions lift when the quota refills at the next billing cycle, or at once if you upgrade from Free to Pro or turn off the Spend Cap on Pro.
The Spend Cap is a Pro plan control, on by default, and it covers storage size, egress and image transformations among other items. It sits in the Cost Control section of the organization's Billing page. Supabase does not offer per-item budgets or cost alerts, so with the cap off, check the Usage page yourself.
How do I find which limit my app hit?
Match the symptom to the limit, then confirm it on the organization's Usage page. You need owner or admin access to the Supabase organization.
- 01Check the failing file's sizeIf only large uploads fail and small ones work, compare the file with the Global file size limit in Storage Settings and the bucket's own limit. A bucket limit cannot be higher than the global one.
- 02Open the Usage pageOpen the organization's Usage page, pick the project from the dropdown, and look at Storage size, Egress and Storage Image Transformations for the current cycle.
- 03Break egress down by serviceIn the Total Egress chart, hover over a day to see egress by service. If storage leads, files being downloaded are the cause. Cached egress has its own chart below.
- 04Find the biggest filesIn the SQL Editor, query the storage.objects table to list files larger than a few MB and the total size per bucket. Supabase's storage size docs include both queries.
- 05Check the billing emailLook for a usage notification sent to the billing email address. It tells you a grace period has started.
How do I bring storage and egress back under quota?
Delete files nobody uses, limit upload size, and serve smaller images with long caching. Supabase notes that images typically make up most of storage egress, so image handling is usually the biggest win.
- Delete files that are no longer used, such as old uploads and replaced profile photos.
- Set a maximum upload size on each bucket, and restrict file types where you can.
- Set a high cache-control value so browsers keep files instead of downloading them again.
- Serve resized images, not the original upload. Pre-generate common sizes rather than transforming on every request, so you stay inside the image transformations quota.
- Use the Smart CDN or other caching so repeated requests come from the cache.
Prompting cannot see your usage. Lovable does not know which bucket is large or which page drives egress unless you tell it. Watch the Usage page for a few days after a fix. If the same limit is close again after the next feature, the cause is structural; see scaling a Lovable app.
What if my app runs on Lovable Cloud?
Lovable Cloud is not an external Supabase project, so there is no Supabase quota or Spend Cap. File storage and network traffic, including uploads, downloads and images, come out of your workspace's run credits.
- 01See what storage costsIn the project, More, then Usage. The breakdown lists Storage for uploaded and generated files, and Network for data sent or received, such as downloads, uploads and images.
- 02Remove unused filesLovable's docs say stored files keep using credits, including while the project is paused. Deleting unused files is the direct fix.
- 03Set limits and alertsWorkspace settings, then Usage limits & alerts. A low-balance alert warns you before credits run out, which is when deployed apps would pause.
Free, Pro and Business workspaces get a 20-credit monthly Cloud grant, which Lovable calls temporary and subject to change. Removing storage from a project permanently deletes the database, user accounts and stored files, so export first. For direct control, the migration guide covers moving to your own Supabase project.
When should you stop prompting and get help?
Get an engineer involved when restrictions are blocking paying customers, or the same limit keeps coming back. A usage warning on its own is not an emergency. Any of these is a good reason:
- Projects are restricted or read-only and customers cannot upload or open files.
- Egress keeps growing faster than your number of users, and you cannot tell why.
- You suspect a bot or scraper is downloading files.
- You have prompted the same fix three times and the usage line has not moved.
- You are deciding whether to upgrade, turn off the Spend Cap, or move off Lovable Cloud.
Our vibe-coding rescue service is built for this: engineers find what drives storage and egress, fix it, and add monitoring so you hear about the next limit before your users do. If you would rather hire one person, our guide to hiring a Lovable developer compares freelancers, agencies and subscriptions on cost and scope.
If the problem is a bigger invoice rather than a quota, see why a Supabase bill suddenly goes up. Our plans are on the pricing page.
Sources
All checked on November 6, 2026. Overage prices are deliberately not quoted here; see Supabase's pricing page for current figures. We review this page every 30 days.
- Supabase docs: Storage upload limits, on the global file size limit (50 MB on Free, up to 500 GB on Pro and Team) and per-bucket limits (supabase.com/docs/guides/storage/uploads/file-limits).
- Supabase docs: Manage Storage size usage, on GB-hours, plan quotas, average size, finding large files, and what happens over quota (supabase.com/docs/guides/platform/manage-your-usage/storage-size).
- Supabase docs: Manage Egress usage, on uncached and cached quotas, the usage chart by service, and restrictions clearing at the next cycle (supabase.com/docs/guides/platform/manage-your-usage/egress).
- Supabase docs: Manage Storage Image Transformations usage, on origin images, plan quotas and optimizing usage (supabase.com/docs/guides/platform/manage-your-usage/storage-image-transformations).
- Supabase docs: Control your costs, on the Spend Cap, the items it covers, and the lack of per-item budgets (supabase.com/docs/guides/platform/cost-control).
- Supabase docs: Billing FAQ, on notifications, grace periods and Fair Use Policy restrictions (supabase.com/docs/guides/platform/billing-faq).
- Supabase docs: Storage optimizations, on images driving egress, cache-control, upload size limits and Smart CDN (supabase.com/docs/guides/storage/production/scaling).
- Supabase: Pricing, on plans and current prices (supabase.com/pricing).
- Lovable docs: Project usage and costs, on the Usage view, its Storage and Network categories, the monthly Cloud grant and removing unused files (docs.lovable.dev/features/project-usage).
- Lovable docs: Usage limits and alerts, on low-balance alerts, paused backends, stored files using credits, and removing storage (docs.lovable.dev/features/usage-limits-and-alerts).
- Lovable docs: Lovable Cloud, on the database, user accounts and file storage running on one backend (docs.lovable.dev/integrations/cloud).
- Lovable docs: Credits and usage, on run credits and the workspace credit balance (docs.lovable.dev/introduction/credits-and-usage).
Common questions
How much file storage does Supabase include?
Supabase's docs list a storage size quota of 1 GB on the Free plan and 100 GB on Pro and Team, shared by every project in the organization. Storage is measured in GB-hours, so the quota compares your average size across the billing period. On paid plans with the Spend Cap off, usage above the quota is billed per GB.
What is the maximum file size I can upload to Supabase?
The global file size limit can be set up to 50 MB on the Free plan and up to 500 GB on Pro and Team. You set it in Storage Settings, and each bucket can have a lower limit of its own. A bucket limit cannot be higher than the global limit.
Why did my uploads stop working after a usage warning?
On the Free plan, or on Pro with the Spend Cap on, Supabase emails a notification and gives a grace period when you exceed a quota. If usage stays over, Fair Use Policy restrictions can apply, such as read-only databases or 402 responses to API requests. Restrictions lift at the next billing cycle, or at once if you upgrade or turn off the Spend Cap.
Does deleting files fix a storage quota right away?
Not always. Storage size is measured in GB-hours, so the quota looks at your average across the billing period. Deleting files late in the cycle lowers the average only gradually, and may not clear a restriction until the next cycle begins.
Does Lovable Cloud have a storage quota?
Lovable Cloud is not an external Supabase project, so Supabase quotas do not apply. Stored files and network traffic use run credits from your workspace balance, and stored files keep using credits even while the project is paused. You can see the Storage and Network categories under More, then Usage.
More on this: Production architecture & security · Lovable app not working in production? How to make it production-ready
Built something in Lovable you want people to rely on?
We are the engineers who take it the rest of the way — secured, tested, released and supported.


