GitHub Actions reusable workflow from another repo not accessible in CI
Calling a reusable workflow in another repository only works if that repo is public, or is private/internal in the same organization with an Actions access policy that permits the caller. Otherwise GitHub reports the workflow as not found.
What this error means
A cross-repo uses: fails with "was not found" or an access error, even though the path and ref are correct and the file exists in the source repo.
error parsing called workflow
"octo-org/private-shared/.github/workflows/deploy.yml@v1":
workflow was not found. It may be inaccessible: the source repository is private
and does not allow access from this repository.Common causes
A private source repo without an access policy
A private or internal repo blocks reuse from other repos unless its Actions settings explicitly allow access from the calling repositories.
A call across organizations
Reusable workflows in a private repo can only be shared within the same organization; a cross-org private call is not accessible.
How to fix it
Allow access from the source repo settings
- In the source repo, open Settings > Actions > General.
- Under "Access", allow access from repositories in the organization (or the specific caller).
- Re-run the caller so it can resolve the reusable workflow.
# Source repo: Settings > Actions > General > Access
# Choose "Accessible from repositories in the 'octo-org' organization"Make the shared repo public or same-org internal
Public reusable workflows are callable from anywhere; internal repos are callable across the organization. Choose based on how widely it must be shared.
jobs:
deploy:
uses: octo-org/shared/.github/workflows/deploy.yml@v1How to prevent it
- Set the Actions access policy when sharing a private reusable workflow.
- Keep shared workflows in a repo reachable by all callers (public or internal).
- Pin cross-repo calls to a tag or SHA the callers are allowed to use.