GitHub Actions "an artifact with this name already exists" (upload-artifact v4)
actions/upload-artifact@v4 makes artifacts immutable and unique per run, so two uploads with the same name in one run collide. This usually happens when every matrix leg uploads to the same artifact name.
What this error means
An upload-artifact@v4 step fails with "an artifact with this name already exists", typically on the second matrix leg that tried to reuse a name the first leg already created.
Error: Failed to CreateArtifact: Received non-retryable error:
Failed request: (409) Conflict: an artifact with this name already exists on the workflow runCommon causes
Same artifact name across a matrix
In v4 each artifact name must be unique within a run. Every matrix leg uploading name: build overwrites is not allowed - the second one conflicts.
Re-uploading the same name in one run
Unlike v3, v4 does not merge multiple uploads into one artifact. A second upload of the same name in the same run is a conflict.
How to fix it
Give each upload a unique name
Incorporate the matrix value (or job context) into the artifact name so every leg is distinct.
- uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.os }}-${{ matrix.node }}
path: dist/Merge later if you need one artifact
- Upload uniquely named artifacts per leg, then combine them in a later job.
- Use actions/upload-artifact/merge@v4 to merge them into a single artifact.
- Or download all and re-upload one consolidated artifact.
How to prevent it
- Make v4 artifact names unique per matrix leg.
- Use the merge action when a single combined artifact is needed.
- Remember v4 artifacts are immutable - no re-upload to the same name.