GitHub Actions upload-artifact v3 and v4 Are Not Cross-Compatible
An artifact uploaded with v3 cannot be downloaded with v4 (and vice versa). The two major versions use different backends, so mixing them across jobs produces "artifact not found".
What this error means
A download fails to find an artifact that was clearly uploaded, because the upload used a different major version of the artifact actions than the download.
Error: Unable to find an artifact with the name: report
# uploaded with actions/upload-artifact@v3 but downloaded with v4Common causes
Different backends between v3 and v4
v4 rebuilt the artifact storage backend. Artifacts created by v3 are not visible to v4 download, and v4 artifacts are not visible to v3.
Partial migration across workflows
Upgrading the uploader but not the downloader (or vice versa), or relying on artifacts from an older run still on v3, breaks the handoff.
How to fix it
Use the same major version on both ends
Pin upload and download to matching major versions across all jobs that exchange artifacts.
- uses: actions/upload-artifact@v4
with: { name: report, path: report.xml }
# ...consumer job...
- uses: actions/download-artifact@v4
with: { name: report }Migrate all workflows together
- Bump every upload-artifact and download-artifact to v4 in one change.
- Re-run producers so artifacts exist under the v4 backend before consumers run.
- Note v4 names must be unique per run, unlike v3 which merged same-name uploads.
How to prevent it
- Pin artifact actions to one major version repo-wide.
- Upgrade upload and download together with Dependabot.
- Account for v4 behavior changes (immutable, unique names) when migrating.