Skip to content
Latchkey

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.

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

Common 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

.github/workflows/ci.yml
- 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.

.github/workflows/ci.yml
- uses: actions/upload-artifact@v4
  with:
    name: report
    path: report/
    overwrite: true

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

Related guides

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