carlos / platform Public

CI: minio-contract fails — dl.min.io answers 410 for the pinned release closed

On branch mail-events-log

mail-events-log (2858ee7) went red on 30-minio-contract only; gate and all five cross shards passed.

minio contract: arm64, minio RELEASE.2025-09-07T16-13-09Z, mc RELEASE.2025-08-13T08-35-41Z
  minio: downloading https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-09-07T16-13-09Z
amadan: step minio-contract failed: exit status 22

Exit 22 is curl's "HTTP error". Checked by hand from another machine:

$ curl -sI https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-09-07T16-13-09Z
HTTP/2 410

So the pinned archive has been withdrawn upstream, not a flake. main (c1d40ee) shows CI passed, which presumably predates the withdrawal. Any branch pushed from now on will fail this step until MINIO_RELEASE in .amadan/ci.d/30-minio-contract points at something dl.min.io still serves (with its .sha256sum), or the binaries come from a mirror the repo controls.

Not changed on mail-events-log: it's a choice about where the contract test's binaries come from, which is bigger than that branch.

Root cause is bigger than a withdrawn release: dl.min.io now answers 410 for every community artifact, with a notice that open-source MinIO Server, mc and KES are archived and no longer served. github.com/minio/minio is archived.

The pinned releases are still GitHub release assets, and they're byte-identical to the pins (all four downloaded and hashed on 2026-09-15). Branch minio-contract-github-source moves only the two URLs; digests unchanged; whole step passes locally on amd64.

That's a stopgap. Longer term: a copy of the four binaries somewhere the deployment controls, or a maintained S3-compatible server for the contract test.

Fixed: minio-contract-github-source merged into main as d9f67f2. The step now fetches the same pinned binaries from the archived repos' GitHub release assets (digests unchanged, byte-identical, reviewed by Fable); CI green on all three steps on the branch.

Still a stopgap, as the script header says — a copy under the deployment's control, or a maintained S3-compatible server for the contract, is the durable fix.