Docs › Railway cron schedules with RunVouch
Railway cron schedules with RunVouch
A Railway service with a cron schedule starts, runs its start command and exits. The dashboard shows it happened; nothing tells you when it stops happening.
On this page
How it runs on Railway cron schedules
The service's start command. Railway expects the process to exit when done; rv run exits with the wrapped command's code.
Store the key
Service Variables: RUNVOUCH_KEY. Shared variables work across services.
Wrap the job
# Railway start command rv run nightly-report --log /tmp/report.log -- python report.py
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 Railway cron schedules
- Railway documents that a cron run is skipped if the previous execution is still running; that is a MISSED in RunVouch terms and a STALLED for the one still going.
- Deploy failures stop the schedule with the service; MISSED covers both.
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