Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 5 Nov 2026. What's built · Install 0.3.0
jadpo
ReferenceErrors

ErrorsTools · rule

schedules.run_failed

On this page

A schedule run by hand ended in a failure, or its run on the app never ended.

Area 14, Tools; not declinable; the next step is usually the human's.

Why Jadpo refuses it

jadpo schedules run runs a schedule now and shows how the run went. When the schedule's action ends with a failure, as send_digest does here, the run is recorded as failed, like one at its own time, and the schedule's next due time is its retry. The command exits 1, and --json gives the failure as this rule, so a script that ran it knows. A run asked of a deployment's tick that holds its lease past the lease's length was lost with its worker, and fails the same way.

Jadpo won't run it again, or change what the action does: whether the cause is in the code, in a setting or in a service the action reaches, only you can tell.

What it looks like

A project whose morning_digest runs send_digest once a day, which fails until a mail service is set up:

domains/news/actions/send_digest.jadpo:

example
use news/failures { NoMailService }/// Sends the morning digest, once a mail service is set up.action send_digest() fails NoMailService -> Unit {    reject NoMailService}

domains/news/schedules/morning_digest.jadpo:

example
use news/actions { send_digest }/// Sends the digest every morning.schedule morning_digest {    every: 1d    run: send_digest()}

Running a schedule in the command's own process needs jadpo dev running beside it, which a checked run doesn't keep, so this output is copied rather than checked. It is jadpo schedules run on a Mac, while jadpo dev ran the project in another terminal:

shell
jadpo schedules run morning_digest
output
failed: `morning_digest`  failure: no_mail_service · unavailable  took: 4 msnext: jadpo why morning_digest  explains the run

The screen shows the failed run; with --json, the diagnostic's next step is to fix the cause, then run jadpo schedules run morning_digest again. (human) at the end of the next: line tells your coding agent to stop and ask you which fix you want, because the choice is yours to make: it decides how send_digest gets the digest out.

How to fix it

The question is where the cause is.

If the cause is in the action, see the run's failure and the schedule's file, fix the action, then run the schedule again:

shell
jadpo why morning_digest

jadpo why names the failure, its kind and the file the schedule is declared in, which is where the fix starts.

If the cause is a setting or a service the action reaches, fix it there, then run the schedule again:

shell
jadpo schedules run morning_digest

The run is recorded as succeeded, and jadpo schedules shows it as the schedule's last run.

Markdown for agents: /docs/errors/schedules.run_failed.md.Built from Jadpo main at aee2e8f.