GitHub Actions: "Unable to resolve action"
Before a job runs any step, the runner downloads every action the job uses. One of them could not be found: either the repository does not exist for this workflow, or the tag, branch or commit after the @ does not exist in it. The job fails at once, and nothing in your code is wrong.
What it looks like
The end of the "Set up job" log of a public run on October 23, 2026:
Prepare workflow directory Prepare all required actions Getting action download info ##[error]Unable to resolve action abinoda/slack-action, repository not found
When the repository exists but the reference does not, the message ends with the version instead, as quoted in several reports from October:
Unable to resolve action `astral-sh/setup-uv@v10`, unable to find version `v10`
- The job has no steps at all. Re-running it fails the same way, unless the missing tag or repository has appeared in the meantime.
- Only the jobs that use that action fail, and the jobs that
needs:them are skipped. Other jobs in the run still start.
"unable to find version": the reference does not exist
- The action no longer publishes a major tag.
astral-sh/setup-uvstopped at v8.0.0 (March 29, 2026), which its release notes call the first immutable release: "You won't be able to use@v8or@v8.0any longer." So@v10does not exist;@v10.3.3does (setup-uv #1091). - The tags were renamed.
aquasecurity/trivy-actionnow hasv0.28.0but no0.28.0, and its releases were republished on March 20, 2026, the day its tags were reported tampered with (trivy-action #541). - The branch was renamed.
Homebrew/actionsmoved its default branch frommastertomain, and every@masterreference stopped resolving (homebrew-arm #88). - The tag was never published. A README showed
@v1for actions whose repository had no tag or release at all (helpers4/action #20). - The commit SHA is not in that repository, for example one copied from a README that was never pushed (FerrLabs/Fixtures #269).
"repository not found": the name does not reach a repository
- The owner or the name is slightly wrong. Reports from October include
dtolnay/rust-action(the action isdtolnay/rust-toolchain),amonddev/vercel-action(amondnet/vercel-action),tessl/setup-tessl(tesslio/setup-tessl) andactions/setup-pages, which does not exist (Pages usesactions/configure-pages). - The repository was deleted.
redhat-actions/crdaanswers 404 today, and workflows that still use it fail before any scan runs (music-mood-matcher-demo #24). - The repository is private. An action in a private repository can be used only by private repositories of the same user or organization, and only after its owner opens it under Settings, Actions, General, Access. Otherwise other repositories get "repository not found" (structural-llm-wiki #34). One company moved its shared actions to a public repository for this reason (Calamari #2198).
- A similar name can reach the wrong repository.
trufflehog/trufflehogredirects to an older project,truffle-hog/truffle-hog, which has nomainbranch, so the error was "unable to find versionmain"; the action istrufflesecurity/trufflehog(wedding2027 #4).
Checking a reference before you use it
# the repository it reaches (a renamed one prints its new name) gh api repos/astral-sh/setup-uv --jq .full_name # the tags that start with v10 gh api repos/astral-sh/setup-uv/git/matching-refs/tags/v10 --jq '.[].ref' # whether a tag, branch or SHA resolves to a commit (an error means it does not) gh api repos/astral-sh/setup-uv/commits/v10.3.3 --jq .sha
Then write the full version, or the commit SHA with the version as a comment, which keeps working even if the tag is later moved or deleted:
- uses: astral-sh/setup-uv@v10.3.3 # or - uses: astral-sh/setup-uv@<full commit SHA> # v10.3.3
A workflow that runs on pull_request_target is read from the base branch, so a fix in the pull request cannot help that pull request's own run. Merge the fix to the default branch first, then re-run.
Telling it apart
- The editor shows "Unable to resolve action, repository or version not found" while runs succeed: that warning comes from the GitHub Actions extension for VS Code, which in October was reported not to resolve some SHA pins and local
$/actions (vscode-github-actions #637, #638). If the run works, the workflow is fine. - "The action ... is not allowed in ... because all actions must be from a repository owned by your enterprise" means the action was found but your organization's or enterprise's allowed-actions policy blocks it. An administrator has to add it to the allowed list.
- The job ran, with a warning that its actions target Node.js 20: the action resolved, and only its version is old (the Node.js 20 warning).
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, so a job that failed in Set up job stands out, 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: The "Node.js 20 is deprecated" warning · "Resource not accessible by integration" · A job not acquired by a runner · "Invalid workflow file" · GitHub Actions plugins for IntelliJ IDEA compared · 日本語