Skip to content
Latchkey

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.

Actions log
Error: Failed to CreateArtifact: Received non-retryable error:
Failed request: (409) Conflict: an artifact with this name already exists on the workflow run

Common 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.

.github/workflows/ci.yml
- uses: actions/upload-artifact@v4
  with:
    name: build-${{ matrix.os }}-${{ matrix.node }}
    path: dist/

Merge later if you need one artifact

  1. Upload uniquely named artifacts per leg, then combine them in a later job.
  2. Use actions/upload-artifact/merge@v4 to merge them into a single artifact.
  3. 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.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →