What's failing
scripts/ci/materialize_base_python_requirements.py, function _download_trusted_uv_archive() (around line 221-265), downloads a fixed, hash-pinned uv release archive from:
https://releases.astral.sh/github/uv/releases/download/0.12.1/uv-x86_64-unknown-linux-gnu.tar.gz
This download is now consistently raising an HTTPError (caught OSError, re-raised as RuntimeError("trusted uv archive download failed: HTTPError")), which surfaces in the coverage-evidence job as:
##[error]Could not materialize base Python locks: trusted uv archive download failed: HTTPError
##[error]Process completed with exit code 1.
Since coverage-evidence is a required input to the OpenCode review approval gate (needs.coverage-evidence.result == success), every PR org-wide that reaches this step gets an automatic REQUEST_CHANGES verdict citing "required test/docstring evidence" was not proven — even though the actual PR diff is unrelated and fully green on every other check.
Evidence this is persistent, not transient
Observed on the OpenCode review dispatch run for ContextualWisdomLab/fast-mlsirm#928 (workflow run 32035463051), job coverage-evidence:
- Attempt 1 — failed with the identical error at
2026-08-17T13:37:37Z
- Attempt 2 (re-run via
rerun_failed_jobs) — failed identically at 2026-08-17T13:48:31Z
- Attempt 3 (re-run again) — failed identically at
2026-08-17T13:53:28Z
Three retries roughly 5-16 minutes apart, all with the exact same HTTPError at the exact same fixed URL, rule out a one-off network blip. Either the pinned 0.12.1 release asset has become unavailable at that URL (removed/moved) or releases.astral.sh is rejecting the request for some other reason (my own sandbox environment for this investigation is behind a proxy that also blocks releases.astral.sh, so I could not independently verify the URL's current live status from here — but the runner-side HTTPError type specifically indicates a non-2xx HTTP response from the server, not a connection-level failure).
Suggested fix
Bump the pinned uv version, download URL, and TRUSTED_UV_ARCHIVE_SHA256 constant in scripts/ci/materialize_base_python_requirements.py to a currently-available uv release, following the same "keep the audited URL literal at the network sink" pattern already used. I did not attempt this myself: getting the SHA256 pin wrong in this trust-boundary file would be worse than leaving the issue open for someone who can verify the correct checksum against a reachable copy of the release.
Impact
Blocks automatic OpenCode approval for essentially every open PR across the org while unresolved, including at least:
ContextualWisdomLab/fast-mlsirm#928
ContextualWisdomLab/fast-mlsirm#959
ContextualWisdomLab/fast-mlsirm#971
Filed by Claude Code while working the fast-mlsirm PR queue.
What's failing
scripts/ci/materialize_base_python_requirements.py, function_download_trusted_uv_archive()(around line 221-265), downloads a fixed, hash-pinneduvrelease archive from:This download is now consistently raising an
HTTPError(caughtOSError, re-raised asRuntimeError("trusted uv archive download failed: HTTPError")), which surfaces in thecoverage-evidencejob as:Since
coverage-evidenceis a required input to the OpenCode review approval gate (needs.coverage-evidence.result == success), every PR org-wide that reaches this step gets an automaticREQUEST_CHANGESverdict citing "required test/docstring evidence" was not proven — even though the actual PR diff is unrelated and fully green on every other check.Evidence this is persistent, not transient
Observed on the OpenCode review dispatch run for
ContextualWisdomLab/fast-mlsirm#928(workflow run 32035463051), jobcoverage-evidence:2026-08-17T13:37:37Zrerun_failed_jobs) — failed identically at2026-08-17T13:48:31Z2026-08-17T13:53:28ZThree retries roughly 5-16 minutes apart, all with the exact same
HTTPErrorat the exact same fixed URL, rule out a one-off network blip. Either the pinned0.12.1release asset has become unavailable at that URL (removed/moved) orreleases.astral.shis rejecting the request for some other reason (my own sandbox environment for this investigation is behind a proxy that also blocksreleases.astral.sh, so I could not independently verify the URL's current live status from here — but the runner-sideHTTPErrortype specifically indicates a non-2xx HTTP response from the server, not a connection-level failure).Suggested fix
Bump the pinned
uvversion, download URL, andTRUSTED_UV_ARCHIVE_SHA256constant inscripts/ci/materialize_base_python_requirements.pyto a currently-availableuvrelease, following the same "keep the audited URL literal at the network sink" pattern already used. I did not attempt this myself: getting the SHA256 pin wrong in this trust-boundary file would be worse than leaving the issue open for someone who can verify the correct checksum against a reachable copy of the release.Impact
Blocks automatic OpenCode approval for essentially every open PR across the org while unresolved, including at least:
ContextualWisdomLab/fast-mlsirm#928ContextualWisdomLab/fast-mlsirm#959ContextualWisdomLab/fast-mlsirm#971Filed by Claude Code while working the fast-mlsirm PR queue.