rebase run replay
Replay a run — or a period of workflow runs — bounded to what was knowable at the time.
Synopsis
# Single mode: replay one run
rebase run replay <run-id> [--code latest|<version-id>] [--param k=v ...] \
[--wait/--no-wait] [--timeout 600] [--poll-interval 5.0] [--json]
# Batch mode: replay every matching run of a workflow
rebase run replay --workflow <project/name> --since <7d|ISO> [--until <ISO>] \
[--status succeeded] [--trigger-source api|schedule|trigger|replay] \
[--code ...] [--param k=v ...] [--max-parallel 4] \
[--compare/--no-compare] [--yes] [--json]Pass either a <run-id> (single mode) or --workflow (batch mode), not both. --workflow takes project/name, or a bare workflow name with --project.
Arguments
| Argument | Type | Description |
|---|---|---|
<run-id> | str | Run ID to replay. Omit when using batch mode with --workflow. |
Options
| Option | Type | Description |
|---|---|---|
--code | str | Code to run: omit for the original pinned version, latest (or current) for the workflow's current version, or a specific version ID. |
--param, -p | name=value | Parameter override, merged over the original run's parameters. Values are parsed as JSON when possible. Repeat for multiple parameters. |
--wait / --no-wait | bool | Single mode: wait for the replay result and compare it with the original run. Defaults to --wait. |
--timeout | int | Maximum seconds to wait for each replay result. Defaults to 600. |
--poll-interval | float | Seconds between run status polls. Defaults to 5.0. |
--json | bool | Print machine-readable JSON output. |
Batch mode options
| Option | Type | Description |
|---|---|---|
--workflow | str | Replay runs of this workflow: project/name, or a bare name with --project. |
--project | str | Project name when --workflow is a bare workflow name. |
--since | str | Required. Runs created after this point: a duration back from now (7d, 24h, 90m) or an ISO datetime. |
--until | str | Runs created before this ISO datetime. |
--status | str | Only replay runs with this status: queued, submitted, running, succeeded, failed, or cancelled. |
--trigger-source | str | Filter candidates by trigger source: api, schedule, trigger, or replay. |
--max-parallel | int | Maximum concurrent replays. Defaults to 4. |
--compare / --no-compare | bool | Wait for each replay and compare its result with the original run. Defaults to --compare. |
--yes | bool | Skip the confirmation prompt. |
Output
Single mode prints the new replay run (ID, replay_of, pinned target_version_id, status). With --wait it then prints a comparison: status transition (succeeded -> succeeded), whether the results are identical (listing up to three differing keys when not), and both run durations.
Batch mode prints the candidate runs, asks Replay N runs? (unless --yes), then prints a table with one row per run: Original, Replay, Status, Result (identical, differs: <key>, or - when either run failed or --no-compare was used), and Created. With --json it emits {original, replay, original_status, replay_status, result_identical, differing_keys} rows instead.
Behavior
- Knowledge-time bound: the replay runs with
REBASE_REPLAY_KNOWLEDGE_TIMEset to the original run's moment; SDK bitemporal andas_ofreads are bounded to it. See Run Replay for what is and is not reproduced exactly. - Shadow mode: replays never signal datasets and never fire downstream triggers. Warehouse writes still execute — guard them with
ctx.is_replay. - Replay-of-replay exclusion: batch mode skips candidates whose
trigger_sourceisreplay, unless--trigger-source replayis passed explicitly. - Non-replayable runs: ephemeral, function, and model runs cannot be replayed; the server rejects them with an explanatory error.
- Exit codes:
0on success;1when the replay run fails (single mode with--wait), when any batch replay fails or cannot be submitted, when the confirmation prompt is declined, or on argument errors. With--no-wait/--no-comparethe command exits0after submission — outcomes are not known yet. Zero batch candidates exits0.
Replayed runs are ordinary runs: inspect them with rebase run get, rebase run logs, and rebase run list --trigger-source replay.

