glideapps / glideapps/quicktype
scala3-upickle CI flake: Bloop compiler-server startup timeout + maven-nightlies download failures
- Dominant language
- TypeScript
- Stars
- 13.9k
- Forks
- 1.2k
- Avg merge
- 8h 53m
- Merged PRs (30d)
- 369
Description
## What happens
The `scala3-upickle` / `schema-scala3-upickle` fixture jobs intermittently fail because the Bloop compiler server times out during startup. The Scala fixtures spin up Bloop, and its 30-second startup budget is regularly exceeded, often after failed downloads from the `maven-nightlies` repository.
## Evidence
- **Signature:** `java.util.concurrent.TimeoutException: Future timed out after [30 seconds]` raised inside `bloop.rifle` during compiler-server startup, frequently preceded by `Failed to download ... maven-nightlies`.
- **Affected PRs (6):** #3039, #3034, #3008, #2996, #2991, #2980. In each, the job fails on inputs the PR does not touch (mostly `coin-pairs.json`, a plain priority JSON fixture), and the PRs' own new fixtures passed under Scala before the crash (e.g. #3008, #2991).
- **Also on master:** the same check fails on master run `29782611112` (merge of #2976), confirming this is environmental rather than a PR diff.
This is the single biggest flake source in the fixture matrix.
## Impact
Because the fixture matrix runs with `fail-fast: true`, a single Scala timeout cancels every sibling language job in the same matrix and trips the `test-complete` gate, so one flake looks like a broad multi-language failure. See #3066 for details.
## Suggested solutions
- Cache/warm the Bloop server or pin its version so startup does not pay a cold-start cost each run.
- Raise the Bloop startup timeout above 30 seconds.
- Cache the maven artifacts with `actions/cache` so downloads do not hit the network every run.
- Avoid nightly repositories (`maven-nightlies`) in CI; pin to stable artifact versions.
## Interim policy
Per `CLAUDE.md` ("Known CI flakiness"), we accept this flake for now. When it happens we retry the failed jobs (`gh run rerun --failed`); a failure here only counts as real if it reproduces across retries or the PR actually touches Scala.
Contributor guide
Research direction
Start by reading CLAUDE.md's "Known CI flakiness" section and locating the fixture matrix CI configuration that starts Bloop for the scala3-upickle and schema-scala3-upickle jobs. Reproduce or rerun the affected check, then determine whether startup timeouts or maven-nightlies download failures are addressed; done means the Scala job no longer flakes and sibling matrix jobs are not unnecessarily cancelled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, scala
- Domain
- build-system, ci-cd
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100