Skip to content

CI: dbt-tools E2E red on main — cached uv env has a dangling interpreter, setup trusts .done marker #1257

Description

@anandgupta42

Summary

The dbt-tools E2E CI job has failed on every main run since 2026-09-07 (e.g. run 34109284290 at ec475f4): three dbt resolver e2e > uv tests fail with

error: ENOENT: no such file or directory, posix_spawn '.../packages/dbt-tools/test/.dbt-resolve-envs/uv/.venv/bin/dbt'

while the resolver itself reports Found: .../uv/.venv/bin/dbt (via .venv/ in project root).

Root cause

test/e2e/setup-resolve.sh trusts a .done marker: when the dbt-resolve-envs-Linux-v1 cache is restored it prints ✓ uv (cached) and skips setup. The cached uv venv's bin/python links to a uv-managed interpreter under ~/.local/share/uv, which is outside the cached directory and absent on a fresh runner. bin/dbt therefore exists on disk but its interpreter does not, and exec fails with ENOENT. Because actions/cache only saves on a miss, the broken environment is restored on every run.

Fix

  • Validate cached environments by running <env>/bin/dbt --version and rebuild when it fails.
  • Create the uv venv with --python "$REAL_PYTHON" so it links to the system interpreter that every runner has.
  • Bump the cache key to -v2 so the broken v1 cache is not restored.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions