Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open Beginner friendly
#1,257 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
github-actions, python, shell, typescript
Domain
ci-cd, testing

Research direction

Start in test/e2e/setup-resolve.sh, where cached dbt resolver environments are accepted via the .done marker. Check the CI workflow/cache configuration for the dbt-resolve-envs-Linux-v1 key and how setup is invoked. Done means cached envs are validated with /bin/dbt --version, uv uses the real system Python, the cache key is bumped, and the dbt-tools E2E uv tests pass on CI.

Written by the indexing model from the issue text.

Description

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.
Dominant language
TypeScript
Stars
813
Forks
134
Avg merge
2d 8m
Merged PRs (30d)
65

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AltimateAI/altimate-code

All issues in AltimateAI/altimate-code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.