# Supabase database full: the app reads but won’t save

> Your Supabase app shows data but can’t save anything. The disk passed 95% and the database went read-only. Free space, grow the disk, and stop it recurring.

Canonical: https://app369.com/fix/supabase-database-full-read-only/
Last updated: 2026-11-13

Customers can still see their data, but sign-ups, orders and edits fail with an error. The likely cause is disk space: when the database disk passes 95%, Supabase switches it to read-only so it doesn’t fill completely, because a full disk shuts Postgres down. Here’s how to confirm it, free space and keep it from happening again, in Supabase’s words, or hand it over at a fixed price.

**Rather hand it over?** [App Fix Ticket](https://app369.com/fixed-price/flutter-firebase-bug-fix/): One reproducible bug in an existing mobile or web app, diagnosed and fixed.

[Pay $450 for a Diagnosis](https://buy.stripe.com/dRmdRa7K4bWz8CWdwagw003) [**Ask a question first**](https://app369.com/contact/?offer=offer1-diagnosis&amp;ask=1)

Full refund if Simon can’t take it on once he sees your project, or if you cancel before work starts. [Refund terms](https://app369.com/terms-of-service/#refunds).

- ![](https://app369.com/.netlify/images?w=28&amp;fm=webp&amp;url=%2Fimages%2Fszymon.jpg)Simon does the work himself
- [5.0 from 127 Fiverr reviews, checked Oct 30, 2026](https://app369.com/reviews/)

**Short answer**

Check disk usage on the project’s Infrastructure page. On the Free plan the disk is a fixed 2 GB, so delete data you don’t need or upgrade. On a paid plan the disk grows on its own at 90%, but only four times in a rolling 24 hours, so a fast-growing database can still hit 95%; increase the disk size yourself. To delete data while read-only, Supabase documents a session override that turns writes back on for that session.

Rather not fix it yourself? [**App Fix Ticket**](https://app369.com/fixed-price/flutter-firebase-bug-fix/) starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

## **Why the database went read-only, and the fix**

1. 01 ### **The disk passed 95%**
  > “When disk usage reaches 95%, Supabase puts your database into read-only mode” [**Supabase, Database size**](https://supabase.com/docs/guides/platform/database-size) Read-only mode protects the database: writes are blocked and fail with “cannot execute INSERT in a read-only transaction”, so the app can look fine until someone tries to save. On paid plans it happens once autoscaling has used its changes for the day. Free space or add disk to bring writes back.
2. 02 ### **The Free plan disk is full**
  > “Free Plan projects have a fixed disk size of 2 GB.” [**Supabase, Database size**](https://supabase.com/docs/guides/platform/database-size) Free projects don’t grow their disk. Delete rows or tables you don’t need, or upgrade to a paid plan for a larger, autoscaling disk.
3. 03 ### **Autoscaling ran out of changes**
  > “Autoscaling is limited to four modifications within a rolling 24-hour window.” [**Supabase, Database size**](https://supabase.com/docs/guides/platform/database-size) On paid plans the disk grows at 90%, but a large import or a burst of writes can use up the day’s changes. Increase the disk size on the Database Settings page (a manual increase can be made once every four hours), and give it room before the next big import.
4. 04 ### **You need writes back to delete data**
  > “You can manually override read-only mode to reduce disk size.” [**Supabase, Database size**](https://supabase.com/docs/guides/platform/database-size) Run this in the SQL editor to turn writes back on for your session only, then delete what you don’t need and run a vacuum, because deleting alone may not lower the reported disk usage straight away. The rest of the app stays read-only until disk usage drops below 95%.```
set session characteristics as transaction read write;
```
5. 05 ### **Find what is using the space**
  > “You can check the distribution of your disk size on your project's Infrastructure page” [**Supabase, Database size**](https://supabase.com/docs/guides/platform/database-size) Data, indexes and the database’s change logs all count toward the disk. Check the breakdown before deleting anything, so you remove the part that grew.

Checked against the vendor’s docs on November 13, 2026: [Supabase docs: Database size](https://supabase.com/docs/guides/platform/database-size).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A 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**](https://app369.com/fixed-price/ai-app-rescue/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Supabase project paused**](https://app369.com/fix/supabase-project-paused/) · [**Supabase bill spike**](https://app369.com/fix/supabase-bill-spike/) · [**Supabase app slow**](https://app369.com/fix/supabase-app-slow/) · [**Supabase too many connections**](https://app369.com/fix/supabase-too-many-connections/)

Questions

## **More on this error**

<details>

<summary>**What happens if the disk fills completely? **+</summary>

Supabase says Postgres shuts down when the disk becomes full, which takes the whole app offline. On the Free plan it stays down until you upgrade to Pro. Supabase calls read-only mode at 95% a best-effort safeguard, so act on it straight away.

</details>

<details>

<summary>**Will a paid plan stop this happening? **+</summary>

It makes it less likely. Paid plans grow the disk when it reaches 90%, up to four times in a rolling 24 hours, so a database that grows faster than that can still reach 95%.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. 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.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)