Skip to content

[Bug] Long stacktrace when package dependencies are incompatible #12049

@dbeatty10

Description

@dbeatty10

Is this a new bug in dbt-core?

  • I believe this is a new bug in dbt-core
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

Long stacktrace when package dependencies are incompatible

Expected Behavior

Just this (without a Python stacktrace):

19:07:55  Running with dbt=1.10.9
19:07:56  Encountered an error:
Version error for package godatadriven/dbt_date: Could not find a satisfactory version from options: ['=0.8.1', '>=0.9.0', '<1.0.0']

Steps To Reproduce

Create these files:

dbt_project.yml

name: "my_dbt_project"
profile: "default"

packages.yml

packages:
  - package: godatadriven/dbt_date
    version: 0.8.1
  - package: metaplane/dbt_expectations
    version: 0.10.9

Run this command:

dbt deps

Relevant log output

$ dbt deps      
19:07:55  Running with dbt=1.10.9
19:07:56  Encountered an error:
Version error for package godatadriven/dbt_date: Could not find a satisfactory version from options: ['=0.8.1', '>=0.9.0', '<1.0.0']
19:07:56  Traceback (most recent call last):
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt_common/semver.py", line 422, in reduce_versions
    to_return = to_return.reduce(version_specifier.to_range())
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt_common/semver.py", line 331, in reduce
    start = self._try_combine_lower_bound(self.start, other.start)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt_common/semver.py", line 288, in _try_combine_lower_bound
    return self._try_combine_lower_bound_with_exact(b, a)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt_common/semver.py", line 269, in _try_combine_lower_bound_with_exact
    raise VersionsNotCompatibleError()
dbt_common.exceptions.base.VersionsNotCompatibleError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/deps/registry.py", line 100, in resolved
    range_ = semver.reduce_versions(*self.versions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt_common/semver.py", line 424, in reduce_versions
    raise VersionsNotCompatibleError(
dbt_common.exceptions.base.VersionsNotCompatibleError: Could not find a satisfactory version from options: ['=0.8.1', '>=0.9.0', '<1.0.0']

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/cli/requires.py", line 178, in wrapper
    result, success = func(*args, **kwargs)
                      ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/cli/requires.py", line 128, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/cli/requires.py", line 254, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/cli/requires.py", line 303, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/cli/main.py", line 461, in deps
    results = task.run()
              ^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/task/deps.py", line 215, in run
    self.lock()
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/task/deps.py", line 187, in lock
    resolved_deps = resolve_packages(packages, self.project, self.cli_vars)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/deps/resolver.py", line 131, in resolve_packages
    target = final[package].resolved().fetch_metadata(project, renderer)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dbeatty/environments/dbt_1.10/lib/python3.12/site-packages/dbt/deps/registry.py", line 103, in resolved
    raise DependencyError(new_msg) from e
dbt.exceptions.DependencyError: Version error for package godatadriven/dbt_date: Could not find a satisfactory version from options: ['=0.8.1', '>=0.9.0', '<1.0.0']

Environment

- OS: macOS
- Python: 3.12
- dbt: 1.10.9

Which database adapter are you using with dbt?

No response

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions