# GitHub Actions: Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v3`

**Code:** `deprecated version of actions/upload-artifact` · **Category:** CI/CD · **Seen on:** GitHub Actions

Since January 2025 the v3 artifact actions no longer work — upload and download steps fail until you move to v4.

## Meaning

Upgrade `actions/upload-artifact` and `actions/download-artifact` to `@v4`. Behaviour changed: artifact names must be unique per run (matrix jobs need distinct names), artifacts are immutable, and `download-artifact` v4 only sees artifacts of the same run unless you pass a token and run id. Merge many artifacts with `merge-multiple`.

## Common causes

- `upload-artifact@v3` or `download-artifact@v3` in a workflow
- Third-party action that internally uses v3
- Same artifact name uploaded by several matrix legs (not allowed in v4)
- Old self-hosted GHES version without v4 support

## Quick fix

1. Change both actions to `@v4`
2. Give each matrix leg a unique artifact name (`name: build-${{ matrix.os }}`)
3. Download several with `pattern:` and `merge-multiple: true`

## Detailed fix by platform

### GitHub Actions

1. Upload: `uses: actions/upload-artifact@v4` with `name` and `path`
2. Download all: `actions/download-artifact@v4` with `pattern: build-*` and `merge-multiple: true`

## Code examples

### v4 with matrix names

```yaml
- uses: actions/upload-artifact@v4
  with:
    name: build-${{ matrix.os }}       # must be unique per run in v4
    path: dist/
```

## How to diagnose

1. **Version** — Which artifact action versions are used?
2. **Names** — Unique per matrix leg?
3. **Source** — Own workflow or third-party action?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/cicd/gha-upload-artifact-v3-deprecated)
