Conversation
fornwall
commented
Aug 29, 2026
fornwall
force-pushed
the
path-fix
branch
2 times, most recently
from
August 29, 2026 23:39
11669f9 to
1f5debf
Compare
Resolver-built seeds store their package root separately from their package-relative path. Use that pair consistently instead of rebuilding file locations from project-relative original_file_path. This fixes DuckDB dependency seeds, which duplicated the package prefix, and BigQuery seeds run outside the project root, which previously used a cwd-relative path. It also removes the now-unused in_dir fallback. Cover shared path resolution, adapter serialization, and BigQuery macro forwarding separately. Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #16127 and #16128.
The same path handling existed in four places:
resolve_seed_path()andhas_same_content()joined the package root with the package-relative path correctly, whileadapter.get_seed_file_path()and the BigQuery seed macro each derived it incorrectly. All four now go through a newDbtSeed::resolve_file_path()function.Only DuckDB and BigQuery exposed the bug. Other adapters insert rows from
agate_table, which has already been read from the resolved path; DuckDB and BigQuery instead pass the CSV path to the engine from Jinja:model['project_root'], so the expression collapsed to the bare project-relativeoriginal_file_path. The driver resolved that against the process working directory -> seeds loaded when dbt ran from the project root, and missed otherwise.get_seed_file_pathjoined the package root withoriginal_file_path, which already carriesdbt_packages/<pkg>. The prefix was repeated, and theCOPYfailed for every seed in an installed package.