Docs › Heroku Scheduler with RunVouch
Heroku Scheduler with RunVouch
Heroku's own documentation calls Scheduler a best-effort service: a run can be skipped without a trace. For a nightly agent that is exactly the failure you cannot see from the logs.
How it runs on Heroku Scheduler
Scheduler starts a one-off dyno with the command you enter. Add runvouch to requirements.txt and prefix the command.
Store the key
Set the key as a config var: heroku config:set RUNVOUCH_KEY=rv_...; one-off dynos inherit it.
Wrap the job
# Scheduler command field rv run nightly-report --log /tmp/report.log -- python report.py # cadence registered once, from anywhere with the key rv agent nightly-report --cadence 24h --grace 30m --evidence
rv fails open: if RunVouch is unreachable the job still runs and you get one warning line.
Register the cadence and caps
rv agent nightly-report --cadence 24h --grace 30m --max-runtime 1h --evidence --cap-run-cost 2
Register the agent once, from anywhere with the key. Cadence is what turns a schedule that stopped into an alert; --evidence makes a run without evidence a failure; the caps pause the agent when it overspends.
What goes silent on Heroku Scheduler
- Skipped runs are documented behaviour, not an error; MISSED is the only alert you will get.
- One-off dynos have no persistent disk, so use
--log(the log growing during the run counts as evidence) or report a URL that must return 200.
What RunVouch detects
| Alert | What it means here |
|---|---|
| MISSED | cadence plus grace passed and no run started |
| FAILED | non-zero exit or a reported failure, with the stderr excerpt |
| NO_EVIDENCE | the run said ok but the file, URL or assertion you required is missing |
| STALLED | a run started and never ended within max runtime |
| RETRY_STORM | the same tool called with identical input many times in one run |
| BUDGET_RUN / BUDGET_DAY | cost cap crossed; the agent is paused until you resume it |
| DRIFT | duration or output size far off its 7-run baseline |
Need a key? Get a free key · Stuck? contact