Cronjob.de › Guides › Supabase Cron
Monitoring Supabase Cron – including apps built with Lovable
Apps built with Lovable run on Supabase: Lovable Cloud is built on it, and many projects use Supabase directly. Scheduled tasks – the daily summary, cleaning up old data, syncing with other services – live in Supabase Cron. Whether they ran today, you only see when you look. A heartbeat tells you by itself.
Why at all
Why you would not notice otherwise
Supabase Cron is built on the Postgres extension pg_cron and records every run in the table cron.job_run_details. There is no message on failure – you have to look yourself.
If the job calls an Edge Function, net.http_post only sends the request. Whether the function fails afterwards is stored in the response table net._http_response – and by default only for six hours.
And according to its pricing page, Supabase pauses free projects after one week of inactivity. A paused project does not run any jobs either.
- Ping address (example)
https://runcheck.de/a8k3m2x9q1- Schedule
- cron syntax, GMT time zone
- Applies to
- Supabase Cron (pg_cron), pg_net, Edge Functions
- Sufficient Cronjob.de plan
- One heartbeat is free; you see its status in your account. Email alerts come with Plus (€17.88 a year), Slack, Teams and Discord with Unlimited.
Setup
Set up in three steps
What is a heartbeat?
A regular sign of life: after every run your job calls its own address at Cronjob.de. If the call is overdue or the job reports a failure, we alert you. More about heartbeats
-
Create a heartbeat
In your account, create a new one under “Heartbeats”, with the same rhythm as your cron job and some leeway. You receive a ping address of its own, such as
https://runcheck.de/a8k3m2x9q1. -
SQL job: the check-in after the work
If your job does its work in SQL, add
net.http_getwith your ping address after it, for example in the SQL Editor. Both run in one transaction, and pg_net only sends requests once it has committed: if the work fails, no check-in goes out. The pg_net extension has to be enabled.select cron.schedule('nightly-cleanup', '0 3 * * *', $$ delete from sessions where expires_at < now(); select net.http_get('https://runcheck.de/a8k3m2x9q1'); $$); -
Edge Function: the check-in as the last line
If your job calls an Edge Function – for emails or syncing with other services, say – the check-in belongs inside the function, before the response. Only then does it mean: the work is done. The time limit makes sure the function never waits for us.
Deno.serve(async (req) => { // ... your work ... await fetch('https://runcheck.de/a8k3m2x9q1', { signal: AbortSignal.timeout(10000) }).catch(() => {}); return new Response('ok'); });
The ready-made lines for Linux, PHP, Python, Node.js, n8n, Make, Supabase and Vercel are on the page Cron job monitoring. Your own ping address appears in your account once you create the heartbeat, with the same lines ready to copy.
When something fails
What happens when a run fails
If the job does not run – project paused, job deactivated, error in the query – or the Edge Function fails before its last line, the check-in is missing. After the leeway we alert you; the next check-in brings the all-clear.
FAQ
Common questions about Supabase Cron
- I built the app with Lovable and never wrote SQL. Can I still do this?
- Yes. Ask Lovable in the chat to call the address
https://runcheck.de/a8k3m2x9q1at the end of your scheduled job – with a ten-second time limit and without letting an error there abort the job. The lines above show what the result should look like. - Does the check-in slow my job down?
- No. pg_net works asynchronously: the request goes out in the background after the transaction ends. In the Edge Function,
AbortSignal.timeoutlimits the wait to ten seconds, and errors while checking in are ignored. - How do I see which jobs exist?
- With
select jobname, schedule, command from cron.job;in the SQL Editor. Recent runs are incron.job_run_details.
Set up your heartbeat now
One heartbeat is free; you see its status in your account. Email alerts come with Plus (€17.88 a year), Slack, Teams and Discord with Unlimited. The first 14 days run on the Unlimited plan, no payment details needed.
Set up a heartbeat for free More about heartbeatsMore monitoring guides
Official documentation of Supabase Cron
The details about Supabase and Lovable come from their own documentation, as of October 2026. Please check there whether anything has changed since. Supabase and Lovable are trademarks of their respective owners. This guide comes from Cronjob.de and has no business relationship with these providers.