Policies
Wakeplane’s behavior at the edges — missed runs, concurrent execution, and failures — is controlled by per-schedule policies.
Retry policy
Section titled “Retry policy”Controls how failed runs are retried.
{ "retry_policy": { "max_attempts": 3, "backoff": "exponential", "initial_delay": "30s", "max_delay": "10m" }}| Field | Default | Meaning |
|---|---|---|
max_attempts | 1 | Total attempts including initial. 1 means no retry. |
backoff | "fixed" | "fixed" or "exponential" |
initial_delay | "1m" | Wait before first retry |
max_delay | "1h" | Cap for exponential backoff |
Runs that exhaust the retry budget transition to dead_letter.
Overlap policy
Section titled “Overlap policy”Controls what happens when a new occurrence fires while the previous run is still active.
| Policy | Behavior |
|---|---|
allow | Both runs proceed concurrently (default) |
skip | New occurrence is skipped if prior is still running |
replace | Prior run is cancelled cooperatively; new run proceeds |
replace is cooperative. The executor must respect ctx.Done(). Non-cooperative executors are not forcibly terminated — they are handled by the timeout boundary.
Misfire policy
Section titled “Misfire policy”Controls what happens when the scheduler restarts and finds occurrences that were missed during downtime.
| Policy | Behavior |
|---|---|
run_latest | Run the most recent missed occurrence only (default) |
run_all | Run all missed occurrences |
skip | Skip all missed occurrences |
Timeout
Section titled “Timeout”Per-run execution timeout. If the executor does not complete within this window, the run is transitioned to failed and retry/dead-letter policy applies.
{ "timeout": "30m"}See also
Section titled “See also”- Concepts: Run Ledger — run states and transitions
- Concepts: Executors — non-cooperative executor behavior