About dbt retry command
Retry re-executes the last invocation from the point of failure.
- If no nodes are executed before the failure (for example, if a run failed early due to a warehouse connection or permission errors), retry won't run anything since there are no recorded nodes to retry from.
- In these cases, we recommend checking your
run_results.jsonfile and manually re-running the full job so the nodes build. - Once some nodes have run, you can use retry to re-execute from any new point of failure.
- If the previously executed command completed successfully, retry will finish as
no operation.
Retry flags
The dbt retry flags apply when you use a self-hosted dbt installation or the Studio IDE.
If you use the dbt platform CLI against your cloud environment, dbt retry accepts only a small subset of overrides—typically --threads, --vars, and related options. Use dbt retry --help on your machine for the exact list your CLI build supports.
The following flags are supported when you run dbt retry with the dbt Fusion engine:
| Flag | Input value | Description | Example |
|---|---|---|---|
-t, --target | target | The target to execute | dbt retry -t prod |
--project-dir | path | The directory to load the dbt project from | dbt retry --project-dir . |
--profile | profile | The profile to use | dbt retry --profile jaffle_shop |
--profiles-dir | path | The directory to load the profiles from | dbt retry --profiles-dir ~/.dbt |
--packages-install-path | path | The directory to install packages | dbt retry --packages-install-path dbt_packages |
--target-path | path | The output directory for all produced assets | dbt retry --target-path target |
--vars | vars | Variables for the project (use the format shown in the CLI help) | dbt retry --vars '{"my_var": "new_value"}' |
Run dbt retry --help for the full list of flags available.
Fusion node selection
Unlike dbt retry with dbt Core, Fusion lets you narrow what gets retried using --select, --exclude, and --selector. Those arguments override the prior invocation’s selection set for the retry run instead of only inheriting it.
Examples
dbt retry --select my_model+
dbt retry --exclude package:analytics --selector nightly_models
Supported commands
Retry works with the following commands:
Retry references run_results.json to determine where to start. Executing retry without correcting the previous failures yields idempotent results.
(Applies to dbt v2.0 and later)With dbt retry, you can optionally pass new --select, --exclude, or --selector arguments to narrow the retry scope, as described in Retry flags.
Example results of executing dbt retry after a successful dbt run:
Running with dbt=1.6.1
Registered adapter: duckdb=1.6.0
Found 5 models, 3 seeds, 20 tests, 0 sources, 0 exposures, 0 metrics, 348 macros, 0 groups, 0 semantic models
Nothing to do. Try checking your model configs and model specification args
Example of when dbt run encounters a syntax error in a model:
Running with dbt=1.6.1
Registered adapter: duckdb=1.6.0
Found 5 models, 3 seeds, 20 tests, 0 sources, 0 exposures, 0 metrics, 348 macros, 0 groups, 0 semantic models
Concurrency: 24 threads (target='dev')
1 of 5 START sql view model main.stg_customers ................................. [RUN]
2 of 5 START sql view model main.stg_orders .................................... [RUN]
3 of 5 START sql view model main.stg_payments .................................. [RUN]
1 of 5 OK created sql view model main.stg_customers ............................ [OK in 0.06s]
2 of 5 OK created sql view model main.stg_orders ............................... [OK in 0.06s]
3 of 5 OK created sql view model main.stg_payments ............................. [OK in 0.07s]
4 of 5 START sql table model main.customers .................................... [RUN]
5 of 5 START sql table model main.orders ....................................... [RUN]
4 of 5 ERROR creating sql table model main.customers ........................... [ERROR in 0.03s]
5 of 5 OK created sql table model main.orders .................................. [OK in 0.04s]
Finished running 3 view models, 2 table models in 0 hours 0 minutes and 0.15 seconds (0.15s).
Completed with 1 error and 0 warnings:
Runtime Error in model customers (models/customers.sql)
Parser Error: syntax error at or near "selct"
Done. PASS=4 WARN=0 ERROR=1 SKIP=0 TOTAL=5
Example of a subsequent failed dbt retry run without fixing the error(s):
Running with dbt=1.6.1
Registered adapter: duckdb=1.6.0
Found 5 models, 3 seeds, 20 tests, 0 sources, 0 exposures, 0 metrics, 348 macros, 0 groups, 0 semantic models
Concurrency: 24 threads (target='dev')
1 of 1 START sql table model main.customers .................................... [RUN]
1 of 1 ERROR creating sql table model main.customers ........................... [ERROR in 0.03s]
Done. PASS=4 WARN=0 ERROR=1 SKIP=0 TOTAL=5
Example of a successful dbt retry run after fixing error(s):
Running with dbt=1.6.1
Registered adapter: duckdb=1.6.0
Found 5 models, 3 seeds, 20 tests, 0 sources, 0 exposures, 0 metrics, 348 macros, 0 groups, 0 semantic models
Concurrency: 24 threads (target='dev')
1 of 1 START sql table model main.customers .................................... [RUN]
1 of 1 OK created sql table model main.customers ............................... [OK in 0.05s]
Finished running 1 table model in 0 hours 0 minutes and 0.09 seconds (0.09s).
Completed successfully
Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1
In each scenario dbt retry picks up from the error rather than running all of the upstream dependencies again.
Was this page helpful?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.