Run Statuses
Every time Crontify detects activity on a monitor, it creates a run record. Each run has a status that describes its outcome.
Status reference​
running​
The job has sent a start ping and is currently in progress. A run stays running until a success, fail, or timeout occurs.
success​
The job completed normally. A success ping was received.
A successful run can also carry the isDurationAnomaly flag if its duration was significantly longer than the historical average. The run is still success — the flag is informational, and a separate slow alert fires. See Duration Anomaly Detection.
failed​
The job explicitly reported an error via monitor.fail() or a /fail HTTP ping. The run record includes the error message if one was provided, and may also have a log attached — see Log Attachment.
missed​
The job never sent a start ping within the expected window (grace period elapsed with no ping). Crontify creates this run record automatically — your job code is never involved.
hung​
The job sent a start ping but never sent a success or fail ping within the expected duration. The hung threshold is calculated as:
hung_threshold = gracePeriod × hung_job_timeout_multiplier
The hung_job_timeout_multiplier system setting defaults to 2. So a monitor with a 5-minute grace period will mark a run as hung if it's been running for more than 10 minutes without completing.
A hung job can indicate:
- A deadlock or infinite loop
- A process that crashed without sending a fail ping
- An external dependency that stopped responding
overlapped​
A new start ping arrived while a previous run was still running. The previous run is automatically closed with this status.
This is usually a sign that your job is taking longer than its scheduled interval — the next instance is starting before the previous one has finished. Investigate whether your job duration is growing, or whether you need to add concurrency controls.
Alert types​
Each run status maps to one or more alert types that can fire:
| Run outcome | Alert type | Fires when |
|---|---|---|
failed | failure | /fail ping received |
missed | missed | Grace period elapsed, no start ping |
hung | hung | Running job exceeded hang timeout |
overlapped | overlapped | New start arrived before previous run finished |
success (slow) | slow | Duration exceeded anomaly threshold |
success (rule match) | silent_failure | Metadata matched an alert rule |
any → success | recovery | Monitor was failing, now back to active |
Run history​
Every run is stored and visible on the monitor detail page. You can:
- Filter by status
- Click a run to see its full details — duration, error message, timestamps, and attached log output
- View the duration trend chart (last 30 days)
Run history is retained according to your plan's history limit. On the free plan, runs are kept for 14 days.