GitHub Actions "an artifact with this name already exists" - overwrite
In artifact v4, names are immutable and unique within a run. A second upload with the same name fails unless you choose a unique name or pass overwrite: true.
What this error means
A second upload-artifact step (often in a matrix that reuses one name) fails saying the artifact name already exists, so the later upload is lost.
Error: Failed to CreateArtifact: Received non-retryable error:
an artifact with this name already exists on the workflow runCommon causes
Reusing one name across matrix jobs
Every matrix combination uploading under the same name collides because v4 artifact names must be unique per run.
Re-uploading to replace contents
Unlike v3, v4 will not silently overwrite. Replacing an artifact requires the overwrite flag.
How to fix it
Use a unique name per upload
- uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.os }}-${{ matrix.node }}
path: logs/Or set overwrite when replacing
When you intentionally want to replace an artifact, opt in explicitly.
- uses: actions/upload-artifact@v4
with:
name: report
path: report/
overwrite: trueHow to prevent it
- Give every artifact a unique name, especially in a matrix.
- Use overwrite: true only for intentional single replacements.
- Merge per-matrix artifacts into one with upload-artifact/merge.