dbt-core v1.10.23 - Deprecated Version Warning

dbt-core v1.10.23 shipped on August 12, 2026 as a stable patch. The only listed change is a runtime notice that the installed dbt version is deprecated and no longer receives regular patches. Operators who pin 1.10 pick up a warning about the line they just patched.

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

A patch that warns about its own line

The changelog cites #15964. The new helper lives in core/dbt/deprecated_version.py. It reads the installed major and minor from get_installed_version() and compares them to LAST_SUPPORTED_MINOR_VERSION, which is hardcoded to 11. Any install below 1.11 is treated as deprecated.

v1.10.23 is below 1.11. Installing this patch therefore classifies itself as deprecated. That is the point. The 1.10 series is past regular support. The patch exists so shops that stay on 1.10 still see the notice without moving minor versions.

The copy is direct. The installed version “is deprecated and no longer receives regular patches, including for known bugs.” The CLI still runs. Models still compile. The notice does not fail the command on its own.

If the installed version string has no major or minor, is_deprecated_version() returns false and stays quiet. That path is for odd or incomplete version strings, not for a normal 1.10.23 wheel.

WARN on init and version, INFO on run

check_deprecated_version is not one log level. Callers pass is_warn=True on the entry points used for install and version checks.

dbt --version goes through _version_callback in core/dbt/cli/params.py and fires a WARNING Note. dbt init calls the same helper from core/dbt/task/init.py and also fires a WARNING. Regular commands go through core/dbt/cli/requires.py. Those fire INFO. The requires.py hook skips init when flags.WHICH != "init" so the task does not emit twice.

The functional tests in tests/functional/cli/test_deprecated_version.py pin that split. With a mocked 1.9.5 install, --version and init --skip-profile-setup produce one WARN Note and zero INFO notes. dbt run produces one INFO Note and zero WARN notes.

That split is the part that matters in CI. --warn-error or a warn-error-options map that promotes every warning will trip on --version and init. A normal dbt run stays at INFO, so this notice alone should not fail a run job.

The --version path is eager Click handling. It runs before cli.invoke() and before dbtRunner callbacks register with the event logger. Tests for that flag assert on fire_event directly instead of the callback list.

Telemetry and extra log lines

On a deprecated install the helper also calls track_deprecated_version_invocation(). That sends a tracking event with action deprecated_version_invocation and schema iglu:com.dbt/deprecated_version_invocation/jsonschema/1-0-0. If tracking is off or active_user is unset, the function returns without sending.

The log event is a generic Note, not a named type in the existing deprecations catalog. Tests that counted every Note had to ignore the new string. tests/functional/deprecations/test_deprecations.py and tests/functional/test_project.py now drop messages that contain “is deprecated and no longer”. If your log scrapers treat any Note as a schema or YAML problem, they will start matching this line on every 1.10 job.

There is no new CLI flag in this patch to silence only the version notice. WARNING output still follows the usual warning controls. INFO output follows your log level.

This is not a refactor of the deprecations subsystem. The 1.10 YAML and Jinja deprecation events from earlier 1.10 releases are unchanged. The new module is a version gate plus a tracking call.

Upgrade notes

This is not a breaking change. Artifact schemas, adapter contracts, and dbt_project.yml keys are untouched. The tag is a stable patch, not a release candidate.

If you stay on 1.10, expect the INFO line on every invocation after you pick up 1.10.23. If a job fails the build on any warning, keep --version and init out of that job, or treat this WARN as expected until you move to 1.11 or later.

If you already run 1.11 or 1.12, this patch is the wrong upgrade. Those lines have their own copies of the same notice. v1.10.23 is for shops still locked to 1.10 that need the warning in place.

Read the notes on the GitHub release page before you bump a pin. There is nothing else in the changelog for this tag.

Where to get it