Guides / When something already went wrong
Your free Render Postgres database expired. What can still be saved.
Render's free Postgres is a 30-day instance, not a free tier. That is documented, but the emails are easy to miss, and the first many people hear of it is a connection error. What is still recoverable depends on which day it is.
What happened
Free Render Postgres databases expire 30 days after they are created. An expired database is inaccessible unless you upgrade it to a paid compute plan. After expiry there is a 14-day grace period to upgrade; when that ends, Render deletes the database along with all of its data.
Free databases have no backups of any kind on Render's side, hold at most 1 GB, and a workspace can have only one at a time. Render emails you before expiry and again before the end of the grace period.
What to do right now
- Inside the 14-day grace period: upgrade the instance to a paid plan to regain access, then immediately take a copy from your machine using the External Connection details:
pg_dump -Fc "<external connection string>" > render.dump. Once the dump is verified (pg_restore --list render.dump), you can decide what to do with the paid instance. - Grace period over: Render has deleted the data and has no backup of it. Check what you hold elsewhere: a local development copy, an application-level export, a seed script, a dump taken for a migration. If your app wrote important records anywhere else (an email provider, a payment processor, logs), that may be the only remaining copy.
So it does not happen again
On a paid Render instance, enable Render's own backups and also keep an off-platform copy; the paid instance is where point-in-time recovery lives, but it is tied to the Render account.
If you intend to keep using free instances, treat each one as temporary from day one. A scheduled off-platform dump is then also your migration path: when the 30 days are up, create the next free instance and restore the latest dump into it. Dumpling takes the dump on a schedule, verifies it, and keeps it in a bucket you own. The Render guide below has the exact steps; note that the instance's hostname changes with each new database, so update the job when you rotate.
# restoring into a new Render instance pg_restore --no-owner --no-acl -d "<new external connection string>" render.dump
Scheduled, verified dumps into a bucket you own. One database with daily backups is free, no card.
Sources
Provider facts checked on 2026-09-18. Policies change; the pages below are the authority.
- Render docs: Deploy for free (free Postgres section)
- Render changelog: free Postgres now expires after 30 days