A nightly dbt build finishes with this summary line. The two WARN results are generic tests configured with severity: warn, and no --fail-fast flag is set. Which statement regarding this run is true?
- The 6 SKIP nodes are every node that had not started when the error occurred.
- The 6 SKIP nodes are all downstream of the node counted in ERROR.CORRECT
- The 2 WARN results are tests that returned failing rows at default severity.
- The 2 WARN results each skipped the models downstream of them.
WHY
The summary line buckets every selected node exactly once, and the four counts sum to TOTAL (41+2+1+6=50). SKIP counts nodes dbt never executed because something they depend on did not succeed — the build docs state that a failure blocks downstream resources and causes them to 'skip entirely' (e.g. if model_b depends on model_a and a unique test on model_a fails, model_b will SKIP). Here only one node is counted in ERROR, and the two WARN results come from tests set to severity: warn, which the same page says is how you stop a test from causing skipping. So the only blocking failure in the run is the ERROR node, and all 6 skipped nodes are its descendants (directly, or through another skipped node). That is what a non-zero SKIP buys you when triaging: it is a count of unrun work traceable to an upstream failure, not of work that ran badly.
WHY THE OTHERS ARE WRONG
- The 6 SKIP nodes are every node that had not started when the error occurred.
- That describes --fail-fast, which is not set here. Without it dbt keeps executing nodes that do not depend on the failed one, so SKIP=6 is the count of that node's descendants, not the count of everything left in the run.
- The 2 WARN results are tests that returned failing rows at default severity.
- Default severity is error, not warn: a test that returns failing rows at default severity is a failure and lands in the ERROR bucket. A result only lands in WARN when severity is warn, or when the failure count clears warn_if but stays under error_if.
- The 2 WARN results each skipped the models downstream of them.
- Warn-severity tests are exactly the case that does not skip anything — the build page's advice for 'don't want a test to cause skipping?' is to set severity to warn instead of error. Downstream models of those two tests were built and are counted in PASS.