When cron fails silently
Scheduled jobs stop running and never say a word. How to actually know a job ran, and what to do when it didn't.

Netlify scheduled function not running: 7 causes and fixes
Scheduled functions only run on published deploys, in UTC, for up to 30 seconds. Here are the seven reasons one never fires or quietly stops, and how to get told when it does.

Cloudflare Workers cron trigger not running: 7 causes and fixes
Cron Triggers run in UTC, can take 15 minutes to go live, and get 10 ms of CPU on the Free plan. Here are the seven reasons one never fires or quietly fails, and how to get told when it does.

How do I know if my cron job actually ran?
"It ran" hides four different outcomes and only one is good. Why logs and error emails miss the worst case, and how a success heartbeat catches a job that never fired at all.

Why your Vercel cron job is not running
On Vercel it's rarely a mystery: the Hobby once-a-day cap, jobs that fire within the hour not on the minute, a CRON_SECRET that 401s your own cron, or a schedule that only runs in production.

Why your GitHub Actions scheduled workflow stopped running
GitHub auto-disables a scheduled workflow after 60 days of no repo activity — and the cron's own runs don't count as activity, so a quiet side project always trips it. Here's the rule, the fork gotcha, and the fix.

Why your Supabase pg_cron job isn't running
A pg_cron job that never runs is usually a missing pg_net extension, a UTC-not-local schedule, or a run that fired and failed. Here's how to read the run log Postgres keeps and find which is yours.

What a dead man's switch is (and when your app needs one)
Most monitoring watches for something bad happening. A dead man's switch watches for something good not happening — the right tool for backups and cron jobs that fail silently. What it is, and when you need one.