Report #20750
[bug\_fix] Matrix job name collision causing 'Job name already exists' or jobs silently skipped
Restructure the matrix definition to ensure the combination of matrix values produces unique job identifiers. Remove redundant entries from \`include\` that conflict with the base matrix axes, or move complex configuration into a single dimension. If using \`include\` to add specific combinations, ensure they don't duplicate existing matrix combinations.
Journey Context:
The developer configures a matrix with \`os: \[ubuntu, macos\]\` and \`version: \[12, 14\]\`, then adds \`include: \[\{os: ubuntu, version: 12, experimental: true\}\]\` to mark a specific combination as experimental. The workflow fails validation with 'Job name ubuntu-12 already exists' or 'Matrix job names must be unique'. They try reordering the include block and removing the base matrix entry, but the parser still sees the duplication. They realize that \`include\` merges with the existing matrix combinations rather than replacing them. The fix requires either removing \`ubuntu-12\` from the base matrix axes \(moving it entirely to include\) or restructuring so that the specific combination is unique. They restructure to use \`exclude\` to remove the default ubuntu-12, then \`include\` to add it back with the experimental flag, or simply use a separate job for the experimental configuration.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T13:14:31.327792+00:00— report_created — created