DEV Community

Cover image for Why Did Supabase Pause My Project? How to Restore It and Stop It Happening Again
DebtDraft
DebtDraft

Posted on

Why Did Supabase Pause My Project? How to Restore It and Stop It Happening Again

You open your app and nothing loads. You check the Supabase dashboard and there it is: "Your project has been paused."

Don't panic. Your data is almost certainly fine, and you can usually bring the project back in a couple of clicks. Short answer: Supabase pauses Free plan projects after about a week of low activity. Below is why your Supabase project was paused, how to restore it, and how to stop it happening again.

Why did Supabase pause my project?

Supabase pauses Free plan projects that show low activity over a 7-day period. It does this to save server resources. A project that is not on a paid plan and has not had enough database activity in the last week is a candidate.

The important detail is the word database activity. Opening the project page once in a blue moon is not the same as your app actually querying it. If you built something, shipped it to a few friends, and moved on to the next idea, this is exactly the pattern that gets a project paused.

You should get a warning email about a week before the pause, and a second email once it has happened. Check your spam folder. Those emails go to the project owner's address, which is not always the one you check daily.

How to restore a paused Supabase project

  1. Open the Supabase dashboard and select the paused project.
  2. Click Resume project.
  3. Wait a few minutes while it comes back up, then test your app.

According to Supabase's current docs, you can restore a paused project for up to a year after it was paused. That window has changed before (it was once 90 days), so don't rely on a number you read in a blog post, including this one. Check what your own dashboard offers, and do it sooner rather than later.

Two things worth knowing:

  • Paused projects don't count toward the free project limit, so you can keep other projects going while you sort this out.
  • If you upgrade to a paid plan, projects stop being paused for inactivity, and you may get expired restore options back.

What if the Resume button is missing?

If the project has been paused for a long time, the one-click restore can be gone. In that case the dashboard offers you a download of the latest backup instead. The rough recovery path looks like this:

  1. Download the backup from the dashboard.
  2. Create a new Supabase project.
  3. Restore the backup into the new project.
  4. Update your app with the new project URL and keys.

Be honest with yourself about step 3. Some people report that restoring an old backup into a fresh project throws errors around roles, extensions or the auth, storage and vault schemas, especially if a lot of time has passed. If that happens, don't keep hammering it. Open a support request from the dashboard and say how long the project has been paused.

And step 4 is the one people forget. A new project means a new URL and new keys. If your app still points at the old ones, it will fail in confusing ways even though the restore worked.

How to stop Supabase from pausing your project

From quickest to most permanent:

1. Generate real activity. After you get the warning email, visit the project in the dashboard, or make requests to it from your app. A few database requests a day is usually enough to prevent a pause.

2. Add a small scheduled request. If you have a side project that nobody visits every day, a scheduled job that does one simple read keeps it awake. Here is a GitHub Actions example. Put the project URL and the anon key in repository secrets, never in the file:

name: Keep Supabase awake
on:
  schedule:
    - cron: "0 9 * * 1,4"   # Monday and Thursday
  workflow_dispatch:

jobs:
  ping:
    runs-on: ubuntu-latest
    steps:
      - name: Read one row
        env:
          API_URL: ${{ secrets.SUPABASE_URL }}/rest/v1/YOUR_TABLE
          API_KEY: ${{ secrets.SUPABASE_ANON_KEY }}
        run: |
          curl -sf "$API_URL?select=id&limit=1" \
            -H "apikey: $API_KEY"
Enter fullscreen mode Exit fullscreen mode

Two catches. GitHub can switch off scheduled workflows in a repo that has had no activity for a while, so check on it now and then. And this is a stopgap for a hobby project, not a plan for something people depend on.

3. Upgrade to a paid plan. This is the real fix. Projects on a paid plan are not subject to automatic pausing for inactivity.

Before real users show up

A pause is a good reminder that "works on my machine" and "ready for users" are different things. A quick pre-launch check:

  • Do you know where your backups are, and have you tried restoring one?
  • Does anything important depend on a project that can go to sleep?
  • Are your API keys and project URLs in environment variables, not in the code?
  • Does your app fail gracefully when the database is unreachable, or does it just show a blank page?

None of that is hard, but it is much easier to do on a calm Tuesday than during an outage.

Quick answers

Does Supabase delete my data when it pauses a project? Pausing is not the same as deleting. Your data is kept so the project can be restored, but only for a limited time, so don't leave it indefinitely.

How long until Supabase pauses an inactive project? After low activity over a 7-day period on the Free plan, with a warning email roughly a week before.

Can paid projects be paused? No. Projects on a paid plan are not paused for inactivity.

Will restoring change my API keys? Restoring in place keeps your project. If you have to recover into a new project, you get a new URL and new keys, and you have to update your app.


If you're tidying up a project before launch anyway, you might also care about what is quietly happening inside the code itself. That is why we built DebtDraft, a GitHub Action that leaves one comment on each pull request with a health score built from a handful of essential signals, plus a dashboard that shows how your repo is trending over time. It is free for up to three repositories, and setup only takes a few minutes.

Have you had a project paused at a bad moment? What would have saved you? Tell us in the comments.

Top comments (2)

Collapse
 
dev2023-op profile image
Owen Ross •

thanks, ill save this incase it happens to me

Collapse
 
debtdraft profile image
DebtDraft •

Happy to help!!