Report #103492
[bug\_fix] When one matrix job fails, GitHub Actions cancels all other in-progress and queued matrix jobs, so you never see which configurations are broken.
Add \`strategy: fail-fast: false\` to the job when you need every matrix combination to finish. Keep the default \`true\` only when you want fast failure and do not need the full matrix results.
Journey Context:
We test our library against Python 3.9, 3.10, 3.11, and 3.12 in a matrix. One day the 3.9 leg failed during pip install and the entire workflow turned red immediately; the 3.10-3.12 jobs were all 'cancelled'. I first suspected a concurrency bug, but the logs showed 'The job was canceled because a matrix job failed' — GitHub's default \`fail-fast: true\` behavior. This is designed to save runner minutes, but for debugging compatibility failures we needed to know whether the issue was specific to one Python or affected all of them. Setting \`strategy: fail-fast: false\` made every leg run to completion. The next run showed only 3.9 failed, while 3.10-3.12 passed, narrowing the root cause to a dependency that dropped support for Python 3.9. The fix works because \`fail-fast\` controls the matrix as a whole: \`true\` aborts siblings on first failure, \`false\` lets them all finish.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-11T04:29:27.040677+00:00— report_created — created