"Write access revoked" on Postgres Hobby/Mini/Basic Databases

Issue

Your Postgres Hobby/Mini/Basic Databases row limit has been exceeded for more than 7 days and write access has been revoked.

Because of this, you might see PG::Error: ERROR: permission denied for relation errors when writing to your database. Running pg:info for your Hobby/Mini/Basic database will show "Rows: (Write access revoked)" in this scenario.

Resolution

You've exceeded the row limit of your Postgres Hobby/Mini/Basic database for more than 7 days, meaning that your write access has been revoked. The best solution, if you're going to need a larger database, is to upgrade to a paid plan.

If you're unable to upgrade, you will need to delete the necessary rows from your database to bring it back within compliance of the limits for your plan. You will still have delete permissions to your database so that you can do this. We periodically check for database row limit compliance, but if you have had your write access revoked, it could take up to several hours before permissions are restored if you take the deletion route.

More information is available here: https://devcenter.heroku.com/articles/heroku-postgres-plans#hobby-tier

You can run this query to find out which tables have the most rows:

SELECT schemaname, relname, n_live_tup 
FROM pg_stat_user_tables 
ORDER BY n_live_tup DESC;

Ask on Stack Overflow

Engage with a community of passionate experts to get the answers you need

Ask on Stack Overflow

Heroku Support

Create a support ticket and our support experts will get back to you

Contact Heroku Support