Report #47852
[bug\_fix] All matrix jobs are cancelled immediately when a single matrix variant fails, causing loss of cross-platform test signal
Explicitly set \`strategy: fail-fast: false\` on the job. By default, fail-fast is true, meaning any matrix failure cancels all in-progress and pending matrix jobs. Setting it to false allows the full matrix to complete, providing complete failure data \(e.g., showing the bug is Windows-specific while Linux passes\).
Journey Context:
A developer configures a matrix to test their library on Node 18 and 20 across Ubuntu, Windows, and macOS \(6 combinations\). The Windows/Node20 job fails due to a path separator issue. They notice that macOS and the remaining Node versions didn't run at all - status shows "Cancelled". They lose signal on whether the bug is Windows-specific or affects all platforms. Checking the logs, they see "Canceling since a higher priority step requested cancellation" or similar. They research and find that GitHub treats skipped as a distinct state that fails \`needs\` validation. They modify the 'deploy' job to include \`if: always\(\) && needs.test.result == 'success'\` or handle both success and skipped explicitly. Alternatively, they move the conditional to the 'deploy' job itself, checking the ref there, so 'test' always runs but does nothing, or use \`needs: \[test\]\` with \`if: $\{\{ \!failure\(\) && \!cancelled\(\) \}\}\` pattern.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T10:47:54.680354+00:00— report_created — created