Report #88056
[bug\_fix] Failed to CreateArtifact: Received non-retryable error: Failed request: \(409\) Conflict: an artifact with this name already exists
Make artifact names unique per matrix job by interpolating matrix values: \`name: artifact-name-$\{\{ matrix.os \}\}-$\{\{ matrix.node \}\}\` or use \`$\{\{ strategy.job-index \}\}\`. Alternatively, use \`overwrite: true\` if the intention is to update the artifact.
Journey Context:
Developer migrates from \`actions/upload-artifact@v3\` to \`@v4\` in a CI workflow with a matrix testing Node 18/20 on Ubuntu/macOS/Windows. All matrix jobs upload test reports using \`name: test-results\`. In v3, this worked because artifacts were mutable and multiple jobs could upload to the same artifact name. After upgrading to v4, the first job \(ubuntu-node18\) uploads successfully, but the second job \(ubuntu-node20\) fails with '409 Conflict: an artifact with this name already exists'. Developer checks the v4 migration documentation and learns v4 artifacts are immutable and require unique names per workflow run. They update the workflow to use \`name: test-results-$\{\{ matrix.os \}\}-$\{\{ matrix.node \}\}\`, allowing all matrix combinations to upload successfully.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T06:23:10.542729+00:00— report_created — created