← trebben.dk

Your cron jobs are failing silently

March 2026

Here's something most developers know but don't act on: if a cron job fails, nothing happens. No alert. No notification. No red banner in a dashboard. The job just doesn't run, and the silence sounds exactly like success.

You find out when a customer asks why their report is stale. Or when you notice the backups stopped three weeks ago. Or when the disk fills up because the cleanup job died in October and nobody noticed until January.

This isn't a tooling gap. MAILTO exists. Logging exists. The problem is that cron was designed in an era where someone read the system mail. Nobody reads the system mail anymore. The failure mode of cron is silence, and we've built our entire operations around pretending that's fine.

I know this because I've lived it. You probably have too. You've written a cron job, tested it once, watched it run a few times, and then stopped thinking about it. That's the design working against you: cron is invisible by default, and invisible things get forgotten.

The fix is genuinely simple. You don't need an agent, a sidecar, or a monitoring platform. You need something that expects a ping and complains when it doesn't get one. That's the entire architecture.

0 2 * * * /usr/local/bin/backup.sh && curl -s https://ping.trebben.dk/p/nightly-backup

If the curl arrives, the job ran. If it doesn't arrive on schedule, something broke. This is dead man's switch monitoring — the oldest pattern in reliability engineering, applied to the oldest scheduler in Unix.

The reason people don't do this isn't that it's hard. It's that it feels like overkill for a cron job. Monitoring is for production services, not for the little script that rotates logs. But the little script that rotates logs is the reason your disk isn't full. It's infrastructure. It just doesn't look like it.

Every cron job is a promise your system is making to itself. Without monitoring, you're trusting that promise on faith. And faith is not an operations strategy.

I built CronPulse for exactly this. Free tier, no credit card, setup in one line.