Summary
The i386 job in the 32bit-ci workflow is failing during environment setup, before any of our code is built. It fails when ghcup installs GHC:
[ Error ] Process "make" with arguments ["install"] failed with exit code 2.
"ghcup --metadata-fetching-mode=Strict --cache install ghc recommended" failed!
##[error]Process completed with exit code 2.
This affects every PR (it first showed up on an unrelated Dependabot PR, #595, where all other 11 checks are green) and will hit the next push to master too.
Root cause
.github/workflows/32bit-ci.yml bootstraps ghcup and installs the recommended GHC, which is unpinned. The recommended version was bumped in ghcup-metadata, and the new i386 bindist no longer installs on our old container:
| Run |
Date |
Recommended GHC |
i386 bindist |
make install |
| master (last green) |
2026-06-11 |
9.6.7 |
ghc-9.6.7-i386-deb9-linux |
✅ |
| PR #595 (+ re-run) |
2026-06-25 |
9.10.3 |
ghc-9.10.3-i386-deb10-linux |
❌ exit 2 |
The container is i386/ubuntu:bionic (18.04). The new bindist is built for deb10 (Debian buster); its installer make install fails on bionic, most likely because the bindist's toolchain/libc expectations are newer than what bionic provides. The exact error is written by ghcup to ~/.ghcup/logs, which isn't surfaced in the GitHub Actions log.
I re-ran the failed job and it reproduced identically, so this is not transient flakiness.
Suggested fix
Pin a known-good GHC version instead of recommended, so a metadata bump can't break CI out from under us. In .github/workflows/32bit-ci.yml:
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | \
BOOTSTRAP_HASKELL_NONINTERACTIVE=1 \
BOOTSTRAP_HASKELL_INSTALL_NO_STACK=1 \
BOOTSTRAP_HASKELL_GHC_VERSION=9.6.7 \
sh
(or ghcup install ghc 9.6.7 --set as an explicit step). Alternatively, move the container to a newer base image that the deb10 i386 bindist supports. Pinning is the smaller, safer change.
Links
Summary
The
i386job in the32bit-ciworkflow is failing during environment setup, before any of our code is built. It fails whenghcupinstalls GHC:This affects every PR (it first showed up on an unrelated Dependabot PR, #595, where all other 11 checks are green) and will hit the next push to
mastertoo.Root cause
.github/workflows/32bit-ci.ymlbootstraps ghcup and installs the recommended GHC, which is unpinned. The recommended version was bumped in ghcup-metadata, and the new i386 bindist no longer installs on our old container:make installghc-9.6.7-i386-deb9-linuxghc-9.10.3-i386-deb10-linuxThe container is
i386/ubuntu:bionic(18.04). The new bindist is built for deb10 (Debian buster); its installermake installfails on bionic, most likely because the bindist's toolchain/libc expectations are newer than what bionic provides. The exact error is written by ghcup to~/.ghcup/logs, which isn't surfaced in the GitHub Actions log.I re-ran the failed job and it reproduced identically, so this is not transient flakiness.
Suggested fix
Pin a known-good GHC version instead of
recommended, so a metadata bump can't break CI out from under us. In.github/workflows/32bit-ci.yml:(or
ghcup install ghc 9.6.7 --setas an explicit step). Alternatively, move the container to a newer base image that the deb10 i386 bindist supports. Pinning is the smaller, safer change.Links