Supabase "read-only transaction" error? The 500 MB Free plan limit
Ship ItChecked against the official source
Source checked 5 Oct 2026 · Published 21 Oct 2026 · Last reviewed 21 Oct 2026 · By Ctrl+Z Therapy (how we test)
The short answer
On Supabase's Free plan, projects enter read-only mode when the database size exceeds 500 MB. That's the data itself, not the 1 GB of disk space. After that, every write fails with an error like "cannot execute INSERT in a read-only transaction". There are two ways out: upgrade to Pro for a bigger quota, or free up space in the SQL Editor.
What to do
- Check your database size on the Database Reports page.
- Option 1: upgrade to the Pro Plan to increase the database size quota.
- Option 2, in the SQL Editor, in this order: allow writes for your session with set session characteristics as transaction read write; then delete data and run vacuum;
- Then turn read-only mode off with set default_transaction_read_only = 'off';
Good to know
- The fair-use restriction (402 responses) is based on the average daily database size over the billing period, not the live size.
- The Postgres SQLSTATE code for this error is 25006.
Source
Checked on 5 Oct 2026. Prices, limits and settings change, so check the source before you rely on them.