dbt-core v1.11.13: Unit Test Parse Order

dbt-core v1.11.13 was published on 12 August 2026 as a patch on the 1.11 series. The change that operators will notice is in the parser. Unit tests that target versioned models no longer fail at parse with “references a model that does not exist” just because the test file was walked before the model.

The full release notes and downloads are on the GitHub release page.

Unit tests on versioned models

Issue #11139 tracked an intermittent parse failure. A unit test that pointed at a versioned model would sometimes claim the model did not exist. The next run, on the same project, would parse clean. That is a flake, not a missing relation.

The cause was the order of the filesystem walk. dbt-core parsed files in an order that is not deterministic. If the unit test node was built while the versioned model was not yet in the graph, the resolver treated the target as absent. A later walk that hit the model first succeeded. Two machines, or two CI workers, could disagree on a project that had not changed.

The patch records two related fixes for that issue. The first stops the race at the point of the error. The second is the one that actually closes the hole. dbt-core no longer resolves a unit test’s tested model eagerly while files are still being parsed. Resolution now happens in one later pass, after parse, when the graph is complete. Filesystem order is no longer an input to that bind.

That later pass is the design that should have been there first. Binding names during an unordered walk was always going to flake. Cleaning one symptom and leaving eager resolve in place would have left the next ordering bug. If your CI runs unit tests against versioned models, this is the reason to take v1.11.13.

Partial parse leftover test nodes

A second parser bug showed up as a false found two data_tests error. Partial parsing kept disabled generic test nodes and disabled singular test nodes in the graph. When the schema was parsed again, dbt-core registered another copy of the same test and then complained that two tests existed.

The fix deletes those disabled test nodes during the schema pass so a stale node cannot sit next to a newly built one. This is graph cleanup, not a new test runner. The changelog does not name a public ticket for this item, so the release text is the spec.

If you disable a generic or singular test in YAML and then run a command that partial parses, this is the matching patch. The error was a false duplicate. The tests were not actually defined twice.

Deprecated version warning

The one feature in this tag is a warning when the running dbt version is already deprecated. It is tracked as #15964. Jobs keep running. The process writes a warning if the installed version is one the project has marked deprecated.

The notes do not print the message text or the version table that trips it. Read this as an operator signal, not as a compatibility break. If you pin dbt-core in a lockfile or an image tag, the warning is a reminder that the pin is stale. It does not add a new requirement and it does not force a migration.

For the exact trigger, use the GitHub release page and the issue. Do not infer a sunset date from this patch alone.

Docker image package refresh

The official Docker image bumps ca-certificates, libpq-dev, and openssh-client to current Debian bullseye versions. The notes say the previous package versions were superseded and that the Docker release build failed for that reason. This is a packaging fix so the image can be published, not a dbt compiler change.

If you pull the published image for v1.11.13, you get those bullseye package versions with the tag: a newer certificate bundle, libpq development files, and the OpenSSH client. If you build your own image from another base, this item does not apply. The notes point at a placeholder issue id, so there is no public ticket to read beyond the changelog line.

Where to get it