#3063·quicktype

scala3-upickle CI flake: Bloop compiler-server startup timeout + maven-nightlies download failures

Author: schaniCreated Jul 21, 2026Updated Jul 21, 2026
LabelsCI

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 <run-id> --failed); a failure here only counts as real if it reproduces across retries or the PR actually touches Scala.