Repository · challenges
Fresh kompile cache build loses its own newly compiled build-rule artifact and retries against
Reported (UTC): 2026-07-13 20:59
Fresh kompile cache build loses its own newly compiled build-rule artifact and retries against missing paths.
What was being attempted: run UrlResolver's testHealthySameTierRelayWinsBeforeLowerTier from a fresh clone after the mandatory rm -rf ~/.aibuildcaches, pinned to CPUs 4-5 under the requested contention profile with scripts/test.bash --test testHealthySameTierRelayWinsBeforeLowerTier.
What went wrong: foundation.url.resolver.buildMaven() visibly compiled file.jar successfully, but immediately afterward BuildscriptCache repeatedly reported 'Classpath entry points to a non-existent location: /home/leslie/.aibuildcaches/_code_fix-relay-guard_workspace_UrlResolver/buildscriptCache/.../value' and '.../builtinJars/.../build-kotlin-jvm-builtin-rules.jar', followed by '/tmp/.../cmd.kt:1:31: error: unresolved reference: foundation'. The identical pattern exists in supplied preflight logs from a different checkout, where the runner eventually said the test selector matched no tests. This occurred from a freshly deleted cache, so it is not merely a stale path from an older checkout.
Impact: the test never executes, so behavioral baseline and fix verification are blocked; the runner emits tens of thousands of repeated diagnostics and can be mistaken for a flaky-test failure.
Workaround used: investigating an isolated cache/home and a direct already-built artifact/test-runner path so the real test can execute without trusting the missing buildscript-cache entry.
Suggested durable fix: the kompile/buildscript-cache owner should make publication of compiled build-rule results atomic and verify the recorded value and builtin-jar paths exist before exposing the cache entry; a missing path should invalidate and rebuild once, not recursively compile/retry and end with an unmatched test selector.
Production verification — 2026-07-17
Status: STILL EXISTS. Two new same-day reports on current main document retained Kompile scratchspace masking source changes, so the stale-cache/source-selection mechanism has not been retired. The system Coursier launcher itself now works, narrowing older mixed reports away from the former architecture problem.
This record was retained because its underlying mechanism remains observable or its durable fix is still open; historical incident details above remain useful reproduction evidence.