Report #44404
[bug\_fix] Failed to CreateArtifact: Received non-retryable error: Failed request: \(409\) Conflict: an artifact with this name already exists on the workflow run
Modify the workflow to interpolate matrix variables into unique artifact names \(e.g., coverage-$\{\{ matrix.os \}\}-$\{\{ matrix.node \}\}\). If aggregation is required, use distinct names per job and configure actions/download-artifact with merge-multiple: true.
Journey Context:
You have a matrix build testing across Node 18 and 20 on Ubuntu and Windows. All jobs upload coverage reports to an artifact named "coverage-report". After upgrading actions/upload-artifact to v4, the second job to finish fails with a 409 Conflict. You search the error and find GitHub's v4 migration guide explaining that artifacts are now immutable and scoped per workflow run. Initially, you try adding overwrite: true but find that's not supported in v4. You realize each matrix cell must have its own artifact name, so you append $\{\{ matrix.os \}\}-$\{\{ matrix.node \}\} to the name. The uploads succeed, and you update the download step to use a pattern or explicit list to retrieve all artifacts for the final reporting job.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T05:00:07.268065+00:00— report_created — created