main RED: Local Provision Lifecycle E2E config-volume naming drift (test seeds truncated name, provisioner reads full uuid) — blocks all core PRs #2499

Closed
opened 2026-06-09 22:24:13 +00:00 by core-devops · 0 comments
Member

core main is RED: Local Provision Lifecycle E2E (stub — REQUIRED) fails on every commit

Failing on at least the last 4 main commits (e4d82298, e9dea823, 42f77aba, 6c9cc581) and therefore failing the REQUIRED check on every open core PR (e.g. #2497, #2498 — both unrelated: one is frontend-only).

Mechanism (from run 325035 / job 435834 — not a flake)

=== Results: 5 passed, 1 failed === / FAIL: workspace STUCK in 'failed' during initial provision

The platform log shows a config-volume naming drift between the test and the provisioner:

  1. Test seeds config into ws-95f603e5-ad7-configs (13-char truncated workspace id) — PASS: seeded config.yaml into ws-95f603e5-ad7-configs.
  2. The provisioner aborts: ABORT — byok billing mode has no usable LLM credential (MISSING_BYOK_CREDENTIAL, molecule-core#1994) — the seeded credential/config is invisible to it.
  3. Auto-restart → auto-recover — no template found under workspace-configs-templates for runtime=claude-codecannot start workspace: no config.yaml source and config volume is empty → stuck failed.
  4. Teardown removes BOTH ws-95f603e5-ad71-4fe4-954e-7802df5797c7-configs (full uuid) and ws-95f603e5-ad7-configs (truncated) — two different volumes existed.

So either configDirName (or the volume-naming convention) changed on main and tests/e2e/test_local_provision_lifecycle_e2e.sh still seeds the old name, or vice versa. Whoever changed the naming should reconcile the test + code to ONE name source (SSOT the volume-name helper into the test via a printed value, not a re-derivation).

Impact

  • Every core PR is blocked on this required check.
  • Per the no-flake SOP: this is a named mechanism, not "environmental" — re-runs won't fix it.

Evidence: run 325035 job 435834 logs (lines quoted above).

🤖 Generated with Claude Code

## core main is RED: Local Provision Lifecycle E2E (stub — REQUIRED) fails on every commit Failing on at least the last 4 main commits (e4d82298, e9dea823, 42f77aba, 6c9cc581) and therefore failing the REQUIRED check on every open core PR (e.g. #2497, #2498 — both unrelated: one is frontend-only). ## Mechanism (from run 325035 / job 435834 — not a flake) `=== Results: 5 passed, 1 failed === / FAIL: workspace STUCK in 'failed' during initial provision` The platform log shows a **config-volume naming drift between the test and the provisioner**: 1. Test seeds config into **`ws-95f603e5-ad7-configs`** (13-char truncated workspace id) — `PASS: seeded config.yaml into ws-95f603e5-ad7-configs`. 2. The provisioner aborts: `ABORT — byok billing mode has no usable LLM credential (MISSING_BYOK_CREDENTIAL, molecule-core#1994)` — the seeded credential/config is invisible to it. 3. Auto-restart → `auto-recover — no template found under workspace-configs-templates for runtime=claude-code` → `cannot start workspace: no config.yaml source and config volume is empty` → stuck `failed`. 4. Teardown removes BOTH `ws-95f603e5-ad71-4fe4-954e-7802df5797c7-configs` (full uuid) and `ws-95f603e5-ad7-configs` (truncated) — two different volumes existed. So either `configDirName` (or the volume-naming convention) changed on main and `tests/e2e/test_local_provision_lifecycle_e2e.sh` still seeds the old name, or vice versa. Whoever changed the naming should reconcile the test + code to ONE name source (SSOT the volume-name helper into the test via a printed value, not a re-derivation). ## Impact - Every core PR is blocked on this required check. - Per the no-flake SOP: this is a named mechanism, not "environmental" — re-runs won't fix it. Evidence: run 325035 job 435834 logs (lines quoted above). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2499