Cronjob.de › Guides › Netlify
Monitoring Netlify Scheduled Functions – including apps built with Bolt
Bolt can publish apps to Netlify, and many projects live there anyway. Scheduled tasks then run as a Scheduled Function: a function with a schedule that Netlify starts by itself. Whether it ran today is in the function log – there is no message when a run is missed. A heartbeat at the end of the function tells you.
Why at all
Why you would not notice otherwise
Scheduled Functions only run for the published deploy, in UTC, and may work for 30 seconds at most. If it takes longer, the function ends before it is done.
Whether a run failed is in the function log in the Netlify UI. You have to look yourself.
A heartbeat as the last line only reports runs that really made it to the end. If it is missing, you hear from us.
- Ping address (example)
https://runcheck.de/a8k3m2x9q1- Schedule
- cron syntax or @hourly, @daily; UTC time zone
- Applies to
- Netlify Scheduled Functions, @netlify/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 your function's rhythm and some leeway. You receive a ping address of its own, such as
https://runcheck.de/a8k3m2x9q1. -
The check-in at the end of the function
This is a Scheduled Function as in the current Netlify documentation; the check-in goes after the work. A five-second time limit leaves enough of the 30 seconds for your work. You can test with “Run now” on the function's page in the Netlify UI.
// netlify/functions/daily-sync.mts import type { Config } from '@netlify/functions'; export default async (req: Request) => { // ... your work ... await fetch('https://runcheck.de/a8k3m2x9q1', { signal: AbortSignal.timeout(5000) }).catch(() => {}); }; export const config: Config = { schedule: '@daily', }; -
Older functions with schedule()
If your project still uses the
schedule()helper from@netlify/functions, the check-in goes right before thereturnin the same way:import { schedule } from '@netlify/functions'; export const handler = schedule('@daily', async () => { // ... your work ... await fetch('https://runcheck.de/a8k3m2x9q1', { signal: AbortSignal.timeout(5000) }).catch(() => {}); return { statusCode: 200 }; });
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 function does not start, fails with an error or ends after 30 seconds before reaching the last line, the check-in is missing. After the leeway we alert you; the next successful run brings the all-clear.
FAQ
Common questions about Netlify
- My Bolt app is not on Netlify.
- Then the same principle applies to the service your scheduled tasks run on: call the ping address once at the end of the task. If the app uses Supabase, the guide Monitoring Supabase Cron helps.
- What if the function hits the 30 seconds?
- Then it ends before reaching the last line – the check-in is missing and you hear about it. For longer work Netlify offers Background Functions; the check-in belongs at their end just the same.
- Does the function run in Deploy Previews?
- According to the Netlify documentation it does not: Scheduled Functions only run for the published deploy. Check-ins therefore only come from production.
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 Netlify
The details about Netlify and Bolt come from their own documentation, as of October 2026. Please check there whether anything has changed since. Netlify and Bolt are trademarks of their respective owners. This guide comes from Cronjob.de and has no business relationship with these providers.