Skip to main content

Dry Runs and Recovery

Run a Sync with dry_run=True before sending work to a real destination.

result = runner.run(sync, dry_run=True)
print(result.to_text())

Dry runs are useful for checking source row counts, target resolution, request planning, and destination payload shape. They do not perform irreversible destination writes or advance destination progress.

Retry model

Runtime recovery is ledger-first. Later runs retry old pending batches and retryable failed batches before scanning new work. Terminal outcomes such as succeeded, accepted, and skipped are not retried automatically.

Dismiss unresolved work

Use dismissal only when an operator intentionally accepts that unresolved destination work should no longer block the Sync.

runner.dismiss_unresolved(sync)

Keep dismissal scoped to the affected Sync destination scope.