Skip to content

Cronjobs with failure notifications

A cronjob that fails silently is often noticed days later – when orders are stuck, backups are missing or newsletters never go out. Cronjob.de calls your address on schedule and tells you as soon as something goes wrong: by email, in Telegram, Slack, Teams or Discord, or via webhook.

The problem

Why cronjobs usually stay silent

The cron on a Linux server at most emails the output of a command – it never learns whether a page it called answered with an error. Hosting providers' cron managers usually report nothing at all. And a cron that piggybacks on page visits, like WP-Cron, simply stops when nobody comes by.

How long this can go unnoticed is shown in our analysis of our call data: about 6% of all cron jobs failed on at least every second call, mostly because the address no longer existed.

Cron's usual email notification is MAILTO=name@company.com in the crontab. It sends every output as an email – harmless output too – and only if the server itself may send mail, which many servers are not set up for. Whether the run actually worked is never checked.

If your cron job runs on your own server, in n8n or Laravel, a heartbeat lets it check in with us after every run. If the check-in does not arrive, we let you know: Cron job monitoring

How it works

What Cronjob.de reports – and how

One alert per incident

You learn when a cronjob switches from running to failing – and get an all-clear as soon as it recovers. No flood of emails for per-minute jobs.

What counts as a failure

Your server answers with an error code (4xx, 5xx) or refuses the connection. Returning status 500 from your script reports your own errors too.

Quiet or immediate

At most one message every 15 minutes with several affected cronjobs combined – or at most one message per day.

Email, chat, webhook

By email from Plus – to you and, if you like, to colleagues, also in CC. On the Unlimited plan also in Telegram, Slack, Microsoft Teams or Discord, or as a signed JSON webhook to an address of your choice, for example for Pushover.

All recipients in one place

Enter or connect contacts once, then tick per folder, monitor or heartbeat who gets what. New folders automatically get the standard contacts.

Log with output

The last 20 calls per cronjob with status, runtime and up to 5,000 characters of the response. Plus a 30-day (Plus) or 90-day (Unlimited) history with every error period.

Certificate expiring

When calling your address we see how long its SSL certificate is valid, and on request we let you know in good time. On the Unlimited plan.

Retry first, then alert

If your server is just briefly overloaded (502, 503), we try again after 1, 5 and 15 minutes and only alert you if everything fails. From Plus. More

Maintenance mode

Server maintenance coming up? Pause all cronjobs or selected folders with one click, for 1, 4, 12 or 24 hours. No false alarms in the meantime – afterwards exactly what was running before starts again.

Tip

Let your script report its own errors

Many scripts abort and still answer with status 200 – from the outside everything looks fine. Catch errors and return status 500. Cronjob.de then reports exactly that run, and the error message shows up in the log.

<?php
try {
    // ... die eigentliche Arbeit ...
    echo 'OK';
} catch (Throwable $e) {
    http_response_code(500);
    echo 'Fehler: ' . $e->getMessage();
}

FAQ

Common questions

Do I get an email for every failed run?
No. You are notified when a cronjob switches from "running" to "failing", and again when it recovers. If it stays broken you do not get an email every minute, but exactly one per incident.
I am maintaining my server. Will I get lots of failure alerts?
Not if you switch on maintenance mode first. It pauses all cronjobs or selected folders, optionally ending automatically after 1, 4, 12 or 24 hours, and afterwards restarts exactly the cronjobs that were running before. Paused cronjobs do not trigger alerts. Maintenance mode is available from the Plus plan.
When does a call count as failed?
When your server answers with an error code (4xx or 5xx) or refuses the connection. So that errors inside your script are caught too, simply have it return status 500 on failure – see the example above.
Is this available on the free plan?
No. Failure alerts by email are available from the Plus plan (€1.49 per month, €17.88 per year). Telegram, Slack, Teams, Discord, webhook and the SSL certificate expiry warning are part of the Unlimited plan (€3.99 per month, €47.88 per year). You can try everything for free during the first 14 days after signing up.
Can the alert go to several people?
Yes. You create contacts, for example yourself and a colleague, optionally in CC, and choose per folder, monitor or heartbeat who gets notified. Another person's address confirms once via a link, so that nobody receives alerts without agreeing.
Can I send the alert to Telegram, Slack, Teams or Discord?
Yes, in addition to the email, on the Unlimited plan. Telegram and Slack connect with one click – with Telegram also a group for your team. For Discord and Microsoft Teams you paste the webhook address. For anything else – such as Pushover – there is a JSON webhook your own script can forward.
My server rejects the calls with 403. What now?
That almost always comes from a firewall or a security plugin. How to solve it is explained in the troubleshooting guide.

Try it free for 14 days

Every sign-up starts with 14 days of Unlimited – with failure notifications, log and one-minute intervals. After that, up to five cronjobs keep running for free. Failure emails are available from Plus for €17.88 per year.

Start for free See pricing