CI: dbt-tools E2E red on main — cached uv env has a dangling interpreter, setup trusts .done marker
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
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 --versionand 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
-v2so 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AltimateAI/altimate-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
AltimateAI/altimate-code#1359 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
AltimateAI/altimate-code#1323 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AltimateAI/altimate-code#1288 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AltimateAI/altimate-code#1285 ·
Maintainers usually reply within 1 day
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifierOpen
Difficulty 1/5 Under an hour Newbie friendliness 88/100
AltimateAI/altimate-code#1284 ·
Maintainers usually reply within 1 day
All issues in AltimateAI/altimate-code
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
melgarafael/DeskcommCRM#1812 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
prisma/prisma-cli#309 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gregwebs/pi-quota-dispatcher#26 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
openwatersio/slackwater.xyz#124 ·
Maintainers usually reply within 1 day
-
agent-reported area/browser area/docs documentation good first issue hacktoberfest help wanted P2
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 2 days