-
Notifications
You must be signed in to change notification settings - Fork 0
Workflow Recovery
Recovery creates a new DAG run from a finished run. It reuses retained task results and their XCom artifacts, then executes the selected tasks and their downstream dependants. The source run remains available for inspection.
In the dashboard, open a failed run and select Retry failed tasks. To repeat a larger portion of a finished run, select Recover from here on a task. The preview lists tasks to run, results to reuse, retained artifacts, and the configuration revision. Review it, then select Start recovery.
For mapped tasks, retrying failures preserves successful instances and their map items. Recovering from the mapping producer discards the old expansion and builds it from the producer's new output. Recovered tasks start with a fresh retry budget. Retained approval decisions stay with reused tasks; selected approval gates require a new decision.
Preview a failed-task recovery:
POST /dags/orders/runs/source-run/recover
Content-Type: application/json
{"mode":"failed","dryRun":true}For a specific starting task, use {"mode":"from","tasks":["extract"]}.
The tasks list contains task-instance keys, including keys such as
load#2 for mapped instances. A mapped group key selects its instances.
The response includes planToken. Submit the same selection with
dryRun: false and that token to execute it. A changed source, artifact
inventory, or configuration invalidates the preview. When the current
configuration differs from the source's recorded revision, execution also
requires allowConfigChange: true. Runs without a recorded revision require
this acknowledgement. Adding or removing task IDs, or changing whether a
task is mapped, requires a full run.
Identical accepted plans use the same recovery run key. Retrying a request therefore returns that run while it remains retained. Missing retained artifacts prevent execution. If preparation fails after acceptance, the new run records the failure before launching tasks. Retention protects a source while its recovery copies artifact references.
The dashboard's backfill form has a Failed dates only option. It previews recovery for the latest retained run at each logical date in the requested range. Successful dates and dates whose latest run is still active are excluded. Dates without retained runs are excluded too.
Use POST /dags/{name}/recover with from, to, and dryRun: true for the
same preview. At most 100 failed dates are accepted per batch. Execute with
the returned planToken and dryRun: false. A batch records each created run;
resubmitting the same token continues an interrupted batch without creating
duplicates for completed entries. Batch progress is retained for seven days.
Incomplete batches protect their source runs for that period. Date bounds
are inclusive; a bound without a time zone uses UTC.
Both endpoints require the control scope. MCP exposes the same operations
through cron_preview_recovery and cron_recover_dag.
Recovery repeats selected commands and their external side effects. The preview identifies the work to repeat; use commands whose writes tolerate that replay. Recovery depends on the current configuration and retained state, rather than an archived copy of the executable or its environment.
This wiki documents cronstable. See the README and the changelog.
cronstable is a fork of gjcarneiro/yacron.
cronstable™ and the cronstable logo are trademarks of Parker Loflin. The code is MIT-licensed. See TRADEMARKS.md and LICENSE.
- Getting Started
- Configuration
- Job Behavior
-
Integrations
- Reporting (Mail, Sentry, Shell, Webhook)
- Push Notifications
- Windows Event Log
- Metrics with Prometheus
- Metrics with statsd
- HTTP Control API
- LAN Discovery (Bonjour/mDNS)
- Listener TLS
- Calendar Export (iCal)
- Schedule Pressure
- Duplicate Schedule Detection
- Suggest a Slot
- Why Didn't It Run?
- Web Dashboard
- Terminal Dashboard
- MCP Server (Model Context Protocol)
- Reference and Development