Answers
Scheduled jobs fail quietly. These pages are the answers to the questions people actually type when one has, written to be useful whether or not you ever use Vivere.
When a job stops running
- Cron job not running: how to find out whyA cron job stopped running and nothing told you. The five usual causes in the order worth checking, how to read the logs, and how to find out next time without looking.
- n8n Schedule Trigger not firing: what to checkYour n8n Schedule Trigger stopped running. Activation state, timezone, missed executions after a restart, queue mode, and how to be told when a workflow goes quiet.
- GitHub Actions scheduled workflow stopped running: how to find out whyA GitHub Actions cron workflow stopped firing and nothing told you. The 60-day inactivity rule, the default branch, forks, delays and dropped runs at the top of the hour, edits that drop the schedule, billing, and how to notice the next time.
- GitHub Actions scheduled workflow runs late or is skippedWhy a GitHub Actions cron workflow starts minutes late or not at all: queueing at high load, the top of the hour, UTC and daylight saving, the 5-minute minimum and concurrency groups. How to measure the delay from run history, and how to trigger a job on time with workflow_dispatch.
- Scheduled workflow disabled after 60 days of inactivity: how to keep it runningGitHub disabled your scheduled workflow because the repository had no activity for 60 days. What the rule covers, how to confirm it, how to re-enable the workflow, and the options for keeping it running: real activity, a private repository, an external trigger, keepalive actions and their risks, or an alert when it happens.
- GitHub Actions cron not triggering on a branch or a forkA GitHub Actions schedule that never fires: the default-branch rule, edits to the cron line on a branch, a changed default branch, forks with scheduled workflows disabled, testing with workflow_dispatch and gh workflow run, and the cron syntax GitHub accepts.
- How to get an alert when a GitHub Actions scheduled workflow doesn't runGitHub's notifications cover runs that happen. Three ways to be told when a scheduled workflow does not run: a watchdog workflow in the same repository and where it falls short, polling the API from elsewhere, and a dead man's switch, with a grace period sized from your own run history.
- Windows Task Scheduler task didn't runA scheduled task did not run on Windows. Turning on history, reading the last run result codes, the stored-password trap, and how to know when a task goes quiet.
- Kubernetes CronJob missed its scheduleA Kubernetes CronJob did not create a Job. startingDeadlineSeconds, the 100-missed-schedules rule, concurrencyPolicy, suspended CronJobs, and how to alert on the run rather than the pod.
- How to monitor a Python script that runs on a scheduleMonitoring a scheduled Python script: reporting success and failure with requests, catching exceptions with a decorator, capturing tracebacks, and alerting when a run never happens.
- How to know if your backup actually ranBackups fail quietly. How to verify a backup ran, why exit code zero is not proof, what to check about size and restore, and how to be told the night it does not happen.
- A dead man's switch for your scriptsWhat a dead man's switch is, why it catches failures that error-based alerting cannot, how to build one with cron and curl, and the timing rules that stop it crying wolf.
- Catching up a missed cron job without getting the dates wrongWhich schedulers run a missed job later and which skip it, why a late run so often covers the wrong day, and how to key scheduled work by window so catch-up runs, retries and overlapping triggers are safe.
- n8n Google credential expires every 7 days: why, and the fixYour n8n Gmail, Sheets or Drive credential stops working every week. Why Google expires the refresh token after seven days while the app is in Testing, how to publish it, when verification applies, service accounts, and how to hear about it before the workflows that depend on it go quiet.
- n8n workflow succeeded but did nothing: catching runs with 0 itemsAn n8n execution says Success but handled no items: an empty API response, a Filter that dropped everything, a renamed field. Why n8n counts it as success, how to make it fail with Always Output Data, an If node and Stop and Error, and how a heartbeat can alert on a run that handled 0 items.
- How to get an alert when an n8n workflow doesn't runn8n tells you when a workflow fails, not when it does not run: an unpublished workflow, a schedule lost to a restart, a webhook nobody calls, an instance that is down. What n8n offers on its own, where each part stops, and the dead man's switch that covers the rest.
Choosing a monitoring tool
Comparisons of what else is available, with the cases where the other tool is the better answer stated plainly.
- Healthchecks.io alternativesLooking for an alternative to Healthchecks.io? An honest comparison of Cronitor, Dead Man's Snitch, Better Stack, UptimeRobot and Vivere, including where Healthchecks.io is still the right answer.
- Cronitor alternativesAlternatives to Cronitor compared on pricing model, monitor count, alert channels and observability depth, including where Cronitor's per-monitor pricing is still the cheaper answer.
- Dead Man's Snitch alternativesAlternatives to Dead Man's Snitch for cron and heartbeat monitoring, compared on price per monitor, alert routing, run logs and status pages.
- UptimeRobot heartbeat alternativesAlternatives to UptimeRobot's heartbeat monitors for people whose main need is scheduled jobs rather than website uptime, with an honest note on where UptimeRobot wins.