dbt drops v1.3 to v1.7 from its platform on January 31, 2027: get pinned jobs onto a release track before they're deleted
Teams still pinned to dbt v1.3 to v1.7 on the dbt platform lose those jobs on January 31, 2027, and often the environments too. We walk through finding them, choosing a v1 release track or v2, and fixing what breaks on the way.
part 9 of 10 · Platform releases, explained from scratchthe ideaPinned v1.3 to v1.7 environments go on January 31. Release tracks keep moving.
after reading, you can- Find the jobs still running v1.3 to v1.7. Check the environment and any override on the job itself
- Pick v2 Stable or a v1 release track for each project. Your adapter usually decides which one you can use
- Spot the deprecations and behaviour changes that break old projects before production moves
On January 31, 2027, dbt Labs removes dbt v1.3 through v1.7 from the dbt platform. Any environment or job still pinned to one of those versions gets cleaned up once they're retired, and for most legacy environments that means deletion. Find your pinned environments this week and move them to a release track, ideally v2 Stable, before the holidays eat December. dbt says your code and history stay accessible while you migrate, but it also warns that projects not moved by then lose access. Don't wait to find out which applies to you.
dbt is retiring five old versions from its cloud service. Pinned projects have to move or their jobs go
dbt is the tool many data teams use to turn raw warehouse tables into the clean ones that feed dashboards and reports. A lot of teams run it on the dbt platform, the hosted service from dbt Labs, where each environment is set to a dbt version. Some teams picked v1.7 or older years ago and never changed it. Those versions stopped getting fixes long ago, and on January 31 dbt Labs takes them off the platform. If an environment is still on one, it's usually deleted along with its jobs, and the nightly runs behind your reports stop. The fix is a settings change plus whatever code clean-up the newer version asks for.
It's like a landlord retiring an old type of lock. Tenants who switch to the new lock keep their keys and their flat. Tenants who ignore the letters find the old lock removed and the door shut, even though their furniture is still inside.
- Teams on the dbt platform (dbt Cloud)
- Data leaders who own nightly reporting
- Analytics engineers maintaining older projects
- Platform teams managing dbt with Terraform
- Finance teams whose reports depend on dbt jobs
Why it matters to you
Nothing breaks in your warehouse on February 1. The tables dbt already built are still there. What stops is the rebuild, so the numbers on the dashboards quietly freeze at the last good run, and the first person to notice is often someone in finance asking why yesterday's sales are missing.
These versions aren't patched anymore. v1.7 came out in November 2023, and dbt supports a minor version for one year, so every one of them has gone without bug fixes or security patches for a while. The deadline turns an old risk into a hard date with a real consequence: if nobody acts, jobs disappear.
-
01 Today: pinned, unpatched
The environment still runs on v1.7. It hasn't had a dbt fix since its one-year window closed.
-
02 You pick a release track
Switch the environment to v2 Stable, or v1 Latest if v2 isn't ready for you. Code and history stay put while you migrate.
-
03 Warnings show up
The newer engine flags old syntax: tests: blocks, custom keys, -m in job commands. dbt-autofix clears many of them.
-
04 Jobs run on a supported version
Once dev and test pass, move production and clear any job pinned to a legacy version.
-
05 After January 31: clean-up
Anything still on v1.3 to v1.7 is removed. Legacy environments lose their jobs, or get deleted outright.
For engineers: dbt decides what to migrate by each job's effective versiondefinitionThe dbt version a job actually runs: its own override if one is set, otherwise the version of the environment it belongs to.. That's the version pinned on the job if it has an override, and the environment's version if it doesn't. So a supported environment can still hold one forgotten job with a v1.6 override, and that job is the one that vanishes.
What dbt Labs is changing, and where you can go
The platform is moving everyone onto release tracks. A release trackdefinitionA dbt platform setting that keeps an environment on a supported dbt version automatically, on a chosen cadence, instead of a pinned version number. is a setting that keeps you on a supported dbt automatically, on a cadence you choose. You stop pinning old version numbers. dbt Labs' own guide calls v2 the recommended target and a v1 release track the minimum to keep jobs running.
What changes on the dbt platform
Once January 31 passes you can't pick these versions for an environment or a job. Anything still set to one is cleaned up once they're retired.
A legacy environment and its jobs are deleted. If one of its jobs already runs a supported version, the environment stays and only the legacy jobs go.
In a supported environment, any job pinned to v1.3 to v1.7 is removed. The environment itself is untouched.
Developer and Starter plans already had to use them. Enterprise accounts that pinned old versions now move too.
dbt v2 is the Rust rebuild people knew as Fusion. On the platform it's generally available for Snowflake, BigQuery, Redshift and Databricks, so teams on those warehouses can aim straight for it.
Your choice of target matters more than the switch itself. On v1 Latest you get every change continuously. v1 Compatible follows the open-source v1 releases once a month, and v1 Extended runs a month behind that. Enterprise+ adds a Fallback track one month further back, for emergencies. The v2 tracks follow the same pattern with Nightly, Stable, Extended and Fallback.
| Track | Cadence | Plans | API or Terraform value |
|---|---|---|---|
| v2 Stable (recommended) | Weekly | All plans | fusion-stable |
| v2 Extended | Monthly, one month behind Stable | Enterprise, Enterprise+ | fusion-extended |
| v1 Latest | Continuous | All plans | latest |
| v1 Compatible | Monthly, aligned with open-source v1 | Starter, Enterprise, Enterprise+ | compatible |
| v1 Extended | Previous month's Compatible | Enterprise, Enterprise+ | extended |
| v1 Fallback | Previous month's Extended | Enterprise+ | fallback |
The dbt dates that matter for this move
- Nov 2, 2023dbt v1.7 released
It's the youngest of the five, and even it lost support in 2024. If you're on any of them, you've been unpatched for a while.
- Sep 14, 2026dbt v2.0 released
It's the version dbt Labs wants you on, with fixes for a year. On a release track you move past it automatically, so that end date rarely bites.
- Dec 18, 2026dbt v1.11 critical support ends
Anyone running v1.11 on their own servers loses security fixes here. Put that move on the same plan, to 1.12 or v2.
- Jan 31, 2027v1.3 to v1.7 removed from the platform
Anything you haven't moved by then gets cleaned up. Legacy environments go, and so do jobs still pinned to old versions.
- Jul 15, 2027dbt v1.12 active support ends
v1.12 is the current v1 minor. v1.13 is in beta and is meant to be the last 1.x minor.
v1 Latest or straight to v2?
If you're touching every environment anyway, dbt Labs says go straight to v2. There's a catch, though. The v2 upgrade assistant only works once a project is already on the v1 Latest track, and v2 won't accept any deprecated code at all. In practice the path for an old project usually runs through v1 Latest first, even when v2 is the goal.
- Smallest change before January 31
- Most deprecation warnings stay warnings, so jobs keep running
- Compatible and Extended move once a month, so production gets time to test
- New features arrive in v2 first, so you'll do this again
- Doesn't depend on v2 adapter support
- One move instead of two
- Every deprecation must be fixed before you switch
- Strict parsing turns misspelled configs into errors
- Faster parsing and SQL checks before anything hits the warehouse
- GA only on Snowflake, BigQuery, Redshift and Databricks today
Pick by adapter and by deadline. A Snowflake or Databricks project with current packages and few warnings is a good candidate to go straight to v2. A project on an adapter that's still in preview for v2, or one with years of old syntax and abandoned packages, should land on v1 Latest first and plan v2 for the spring. Both options meet the deadline.
Running both engines side by side is less risky than it sounds. dbt v2 writes a v12 manifest that v1 can read, so state:modified, --defer and cross-environment docs keep working when dev is on v2 and production is still on v1. You can move one environment at a time.
Before: a project with pinned legacy versions
Dev and production were set to v1.7 years ago. One job in the supported staging environment still carries a v1.6 override, and Terraform keeps writing the pinned version back on every apply.
After: every environment on a release track
Dev moves first and clears its warnings. Production follows on a monthly track, the stray override is cleared, and Terraform sets the release track name so the next apply doesn't undo the work.
What usually breaks when an old project moves
dbt promises that minor versions don't break documented behaviour, but four years of minors add up. dbt's upgrade pages list the edge cases that bite projects coming from v1.3 to v1.6, and the community forum fills in the rest.
Where old projects usually trip, from dbt's docs and its forum
Since v1.3 dbt treats every .py file under models/ as a Python model. Helper scripts kept there fail to parse. Move them or list them in .dbtignore.
Old jobs sometimes use --m. That only ever worked by accident and stopped at v1.5. dbt-autofix jobs rewrites -m and --model to -s, but its docs don't mention --m, so fix that one by hand.
From v1.5 an empty tests config raises a validation error. Replace it with tests: [] or delete it.
Since v1.6 you can read a query result once. Macros that call load_result on the same result twice need to save it to a variable.
v1.8 renamed the key when unit tests arrived. On the dbt forum, one team renamed tests across 2,000 YAML files and still saw the warning. A reply pointed to an outdated dbt_utils or a stale target folder as the likely causes.
Custom overrides of adapter macros can break when the adapter changes. One forum thread shows a spark__location_clause override failing after dbt-databricks 1.8.3 changed that macro's name and signature.
Since v1.8 a package that overrides a built-in materialization raises a deprecation warning, and the new behaviour is on by default. Opt in from the root project with a wrapping materialization.
On v1 Latest, most of the behaviour flags added in v1.9 switched on by default in September 2026. One of them, skip_nodes_if_on_run_start_fails, means a failed on-run-start hook now skips the selected models. A job that used to carry on past a broken hook stops instead.
The flags are the quiet one. A project jumping from v1.7 to v1 Latest skips the releases where those flags were optional, so it lands with most of the new behaviour already switched on. Read the behaviour-change table and set any flag you need to keep in the flags block of dbt_project.yml. v2 removes several of them for good, so keeping an old behaviour only works on v1.
If you also run dbt Core on laptops or CI runners, check the network. One team on the dbt forum reported dbt deps failing with handshake errors after moving from 1.7 to 1.8, until hub.getdbt.com was allowed through the firewall.
# List every deprecation, not just the first of each kind $ dbt parse --no-partial-parse --show-all-deprecations # Let dbt-autofix fix what it can. It edits files, so stay on a branch $ uvx dbt-autofix deprecations $ uvx dbt-autofix jobs # Prove the build works without reading real data $ dbt build --empty # Then open a run's System Logs: the first line, 'Running with dbt=', shows the version it used
What to do now
What to do before January 31, by who you are
- Ask for one list: every dbt environment and job, its effective version, its owner and its target track.
- Agree a freeze date in mid-January for production moves, so nothing is still in flight on the 31st.
- Name who gets called if the nightly build fails after the switch, and tell finance and other report owners when it's happening.
- Go to Orchestration, then Environments, and note every environment on v1.3 to v1.7.
- Open the jobs in supported environments and look for version overrides pinned to a legacy version.
- Delete legacy environments unused for 12 months or more. Move any jobs you still want first, because deleting an environment deletes its jobs.
- If you manage dbt with Terraform or the Admin API, change dbt_version to a track name such as fusion-stable or latest.
- Set the Override dbt version on your own account to the target track and build the project in a branch.
- Run dbt-autofix, then dbt parse with --show-all-deprecations, until the list is empty.
- Rerun one real production job from the branch in a test environment before touching production.
- Check package-lock.yml into git so package installs don't drift during the move.
- Check the reports you rely on the morning after production moves, and say so quickly if numbers look off.
- Tell the data team which reports must not be stale, so those jobs get checked first.
Moving one project off a legacy version, in order
- 01Find the effective version of every job
Write down the environment version and any job override. The job override wins, so a supported environment can still hide a legacy job.
- 02Delete what's dead
Legacy environments nobody has used in a year go first. Move any job you still need into another environment before you delete.
- 03Move development first
Set the dev environment to v2 Stable, or v1 Latest if v2 doesn't support your adapter yet. Everyone has to restart the IDE after a dev move to v2.
- 04Clear the warnings
Run Check & fix deprecations in Studio, or dbt-autofix from the command line. Fix what's left by hand from dbt's deprecations reference.
- 05Rehearse a production job
Create a test deployment environment on your branch, set it to the target track and run a copy of a job the business depends on. Compare row counts and test results with production.
- 06Move production and clear overrides
Switch production, clear legacy job overrides so jobs inherit the track, and watch the first few scheduled runs.
- 07Lock it in
Update Terraform or API scripts to the track name so nobody re-pins an old version on the next apply.
Make the next forced upgrade smaller
This deadline is painful because the projects sat still for years. The fixes that keep it from happening again are mostly about cadence and visibility.
Habits that keep a dbt project upgradeable
- 01Stay on a release track
Pick the cadence you can live with, such as v1 Compatible or v2 Extended for production. A monthly step is far smaller than a four-year jump.
- 02Treat deprecation warnings as bugs
Fail CI on new deprecations, or at least report them. v2 won't accept any, so every warning you leave becomes a blocker later.
- 03Pin packages and review upgrades
Keep package-lock.yml in git and upgrade packages on purpose, in a branch, with a build run before merge.
- 04Keep a test environment that mirrors production
Use it to rehearse version moves with a real job. When dbt changes behaviour, you see it there first.
- 05Watch for stale data
Use source freshness and alerts on job failures, so a stopped job pages someone the same morning instead of a week later.
If the move goes wrong
If a job fails or numbers change after the switch
Most failures after a version move are parse errors or a behaviour change in one macro. Work through it in order, and keep the old setting written down until the new one has run clean for a week.
- 01Stop the spreadfirst hour
- Pause further environment moves until you know the cause.
- Tell the people who own the affected reports that the data may be stale. Give them a time for the next update, and keep to it.
- 02Find the causefirst hours
- Read the failed run's logs and the first line of output to confirm which dbt version ran.
- Check for deprecation errors, behaviour flags that flipped and packages that changed during the move.
- 03Roll back if you cansame day
- Before January 31, set the environment back to v1.7 while you fix the code. dbt suggests exactly this.
- On Enterprise+ v2, account admins can switch to the Fallback track. Return to Extended or Stable once the issue is fixed.
- 04Fix forwardfirst days
- Fix the code in a branch, rerun the job in the test environment and compare results before moving production again.
- If a behaviour you depend on changed, set its flag in dbt_project.yml for now. Then plan the real fix, because v2 drops several of those flags.
- 05Get helpif you're blocked
- Send dbt Support the project ID, environment ID, failing run IDs and logs, the version you were on and the track you moved to. That's the list they ask for.
- If the fix can't land before the deadline, ask dbt Support about an extension, which its docs mention for some edge cases.
What it looks like in real projects
Some dbt setups you might recognise. Here's what we'd do in each
- the setup
- A retailer's two-person data team runs one dbt platform project on Snowflake. Dev and production were pinned to v1.7 when they set it up, and it has run untouched since.
- what happens
- On January 31 both environments are legacy, so both are deleted with their jobs. The morning sales dashboard stops refreshing and nobody knows why.
- what to do
- Move dev to v2 Stable, run Check & fix deprecations, rehearse the nightly job, then move production. Snowflake is GA on v2, so one move covers it.
- the setup
- A healthcare analytics team moved its environments to v1 Latest last year. A finance refresh job in staging still carries a v1.6 override that someone set during an incident.
- what happens
- The environment survives the clean-up, but that one job is removed. Month-end finance numbers stop updating.
- what to do
- Search every job in supported environments for overrides. Clear this one so it inherits the track, then run it once in test and compare totals.
- the setup
- A manufacturer runs about 40 dbt projects. Environments are created by Terraform, and the module sets dbt_version to 1.7 by default.
- what happens
- Admins move environments in the UI, and the next Terraform apply puts them back on v1.7. Some are still legacy on January 31.
- what to do
- Change the module default to a track name, such as compatible for production and fusion-stable for dev. Apply it project by project, smallest and newest first, as dbt recommends.
- the setup
- An insurer's dbt project runs on a warehouse whose adapter is still in preview for v2 on the platform, and it uses a few packages from outside dbt Labs.
- what happens
- v2 isn't a safe production target yet, and some packages may not parse on it. Waiting for v2 risks missing the deadline.
- what to do
- Move to v1 Compatible or v1 Extended now to meet the date. Ask package maintainers about v2 support, run dbt-autofix's package check and plan v2 separately.
These are illustrations of common setups, not Cohash client stories. Your own project will mix them.
How Cohash helps
We take inventory of dbt platform accounts, find the effective version of every job, and move projects onto release tracks with your team. We clear deprecations, rehearse production jobs and compare results before cutover, and plan the v2 move where it makes sense. See our dbt practice, hire dbt engineers, or start with a readiness assessment.
What to take from this
- 01
On January 31, 2027, v1.3 to v1.7 leave the dbt platform. Whatever's still pinned to them gets cleaned up, so check now.
- 02
Check each job's effective version. A job override beats the environment setting, so a supported environment can still hold a legacy job.
- 03
A v1 release track is the minimum. v2 Stable is the recommended target if your adapter is GA on v2.
- 04
Expect deprecation warnings when you move. dbt-autofix clears many of them, and v2 won't run until all are fixed.
- 05
Change Terraform and API scripts to track names, or the next apply puts the old version back.
- 06
Move while you can still drop back to v1.7. After January 31 that safety net is gone.
01Does this affect my dbt project?
Only if it runs on the dbt platform and an environment or a job is set to v1.3, v1.4, v1.5, v1.6 or v1.7. Check each environment's dbt version and each job's version override. If everything is on a release track already, you have nothing to do.
02What happens if we do nothing?
Your nightly jobs stop. A legacy environment gets deleted with its jobs, unless one of its jobs already runs a supported version, in which case only the legacy jobs go. dbt also warns that projects not moved by January 31 lose access, so don't count on getting at the code afterwards.
03Does this affect dbt Core installed on our own servers?
The removal is about the dbt platform. A local dbt Core 1.7 install keeps running, but it hasn't had fixes since its support window ended, so plan to move it to 1.12 or v2 as well.
04Should we move to v1 Latest or straight to v2?
dbt Labs recommends v2 if you're upgrading anyway. Go to v2 Stable if your adapter is GA there (Snowflake, BigQuery, Redshift or Databricks) and your packages work on it. Otherwise move to a v1 release track first and plan v2 separately.
05How long does the move take?
The settings change itself is quick. The time goes into deprecation warnings and testing, and that depends on the project. A small, tidy project moves fast. A large one with old packages and custom macros needs clean-up and a rehearsal first, so start with dev now.
06Can we get more time after January 31?
dbt's docs say to contact support and ask for an extension if you hit one of the known edge cases while upgrading. Don't plan on one. Move dev now so you find those problems early.
07Which release track should production use?
dbt's own cautious layout puts development and test on v1 Compatible and production on v1 Extended. On v2 the same idea is Stable for development and Extended for production. You need an Enterprise or Enterprise+ plan for the Extended tracks.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1Your staging environment is on v1 Latest, but one job in it has a dbt version override set to v1.6. What happens on January 31?
show the answer
B. That job is removed and the environment stays dbt uses each job's effective version, and an override beats the environment setting. A supported environment with a legacy-pinned job keeps the environment and loses only that job.
-
Q2Someone moved your Terraform-managed environments to a release track in the UI. A week later they're pinned again. What got missed?
show the answer
C. Changing dbt_version in the Terraform code to a track name, so the next apply keeps it Terraform writes the configured value back on the next apply. Setting dbt_version to a release track name keeps the environment migrated.
-
Q3Your project runs on an adapter that is still in preview for dbt v2, and the deadline is close. What's the sensible move?
show the answer
D. Move to a v1 release track now and plan v2 separately A v1 release track meets the deadline without waiting on v2 adapter support. Moving production to v2 while the adapter is still in preview adds risk you don't need.