GitHub Actions "workflow_run did not trigger" (default branch only)
A workflow_run-triggered workflow is evaluated from the version of the file on the default branch, and fires based on the upstream workflow completing on branches it watches. Expecting it to run from a feature branch version is a common mistake.
What this error means
The downstream workflow_run workflow never starts even though the upstream workflow completed, because the trigger definition only takes effect from the default branch.
github-actions
# Downstream "Deploy" never runs after "CI" completes on a feature branch.
on:
workflow_run:
workflows: ["CI"]
types: [completed]Common causes
Trigger only honored on default branch
workflow_run uses the default-branch version of the file; edits on a feature branch do not take effect until merged.
Upstream did not run on a watched branch
The upstream workflow completed on a branch the workflow_run config does not target.
How to fix it
Merge the trigger to the default branch
- Merge the workflow_run workflow to the default branch so the trigger is active.
- Confirm the watched workflow name matches exactly.
- Use branches filters intentionally; remember evaluation is from the default branch.
.github/workflows/deploy.yml
on:
workflow_run:
workflows: ["CI"]
types: [completed]
branches: [main]How to prevent it
- Land workflow_run trigger changes on the default branch to activate them.
- Match the upstream workflow name precisely.
Related guides
GitHub Actions "pull_request paths filter excluded all (no run)"Fix a GitHub Actions workflow that never runs because its pull_request paths or paths-ignore filter excluded…
GitHub Actions "schedule disabled after 60 days of inactivity"Fix a GitHub Actions scheduled workflow that stopped firing because it was auto-disabled after 60 days of rep…
GitHub Actions concurrency deadlock between deploy jobsFix a GitHub Actions deploy that hangs because two jobs share a concurrency group and wait on each other.