Lesstep
GitHub Actions · Checked November 3, 2026

GitHub Actions: "Artifact not found for name"

actions/download-artifact asked for an artifact by name, and the workflow run had none with that name. The download step is where it fails, but the cause is almost always earlier: in the job that should have uploaded it, or in the name.

What it looks like

Error: Unable to download artifact(s): Artifact not found for name: build
        Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
        For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md

The second and third lines are the same whatever the cause. Without github-token, the step looks only in the current run; from the action's README: "By default, the permissions are scoped so they can only download Artifacts within the current workflow run."

1. The upload found no files and only warned

actions/upload-artifact defaults to if-no-files-found: warn. When its path matches nothing, it logs "No files were found with the provided path", passes, and makes no artifact.

Open the upload step in the job that should have made it and look for that warning. For an artifact another job needs, make it an error, so the run fails where the files went missing:

- uses: actions/upload-artifact@v7
  with:
    name: release-notes
    path: dist/release-notes.md
    if-no-files-found: error

2. The uploading job had not run, or had not finished

List the uploading job in needs. If the job has to run after failures too, also check that job's result:

deploy:
  needs: [test, build-site]
  if: ${{ !cancelled() && needs.build-site.result == 'success' }}

3. A re-run of failed jobs, with the run attempt in the name

"Re-run failed jobs" (or gh run rerun --failed) runs the failed jobs again, not the ones that passed; those keep their result, and their artifacts, from the earlier attempt. github.run_attempt "begins at 1 for the workflow run's first attempt, and increments with each re-run." So a name built from it asks for an artifact that no job uploaded in this attempt:

Leave run_attempt out of names that one job hands to another. A re-run then downloads the earlier attempt's artifact, and when the uploading job runs again and uploads the same name, the download takes the newest one (in the toolkit's source: "More than one artifact found for a single name, returning newest"). If the files must come from this attempt, re-run all jobs instead.

4. The artifact is in another workflow run

A release workflow that downloads what CI built has to say where. GitHub's documentation: "If you want to download artifacts from a different workflow or workflow run, you need to supply a token and run identifier."

on:
  workflow_run:
    workflows: [CI]
    types: [completed]

jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      actions: read
    steps:
      - uses: actions/download-artifact@v8
        with:
          name: app-apk
          github-token: ${{ github.token }}
          run-id: ${{ github.event.workflow_run.id }}

For another repository, add repository: owner/name and a token that can read that repository's Actions. The name still has to match exactly: in tucaVR, CI uploaded VR-Player-APK-<branch>-<run id> and the release workflow asked for VR-Player-APK-main, which never existed (tucaVR #79).

5. The artifact has another name

6. It expired

Artifacts are deleted after their retention period: 90 days by default, less with retention-days or a shorter repository or organization setting. In DiluxOne's workflow an artifact kept for one day was gone when the failed jobs were re-run 29 hours later (DiluxOne .github #56). A run can be re-run for 30 days, so keep artifacts that a re-run needs at least as long as you may re-run.

Telling it apart

See failed jobs from IntelliJ IDEA

Pipeline Inbox for GitHub Actions Workflows, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, lists the runs of all your repositories in an IDE tool window, with their jobs and steps, and your current branch's runs are in the status bar. Reading is free; re-running failed jobs, cancelling, running workflows and reviewing deployments are Pro (US$1.50 a month, with a 30-day trial).

GitHub and GitHub Actions are trademarks of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with, sponsored or endorsed by GitHub, Inc. or JetBrains.

More: "No files were found with the provided path" · "Artifact storage quota has been hit" · Re-running a run over a month old · GitHub Actions plugins for IntelliJ IDEA compared · 日本語