GitHub Actions "This action is deprecated" - Old actions/<x>@v1/@v2
A workflow warns or fails because it pins an old major of an action that GitHub has deprecated - typically one built on a Node runtime (Node 12/16) that current runners no longer support.
What this error means
A run shows a deprecation warning naming a specific action and version, or a step fails outright because the action's Node runtime is no longer available on the runner.
Warning: The `actions/checkout@v1` action is deprecated.
# or, once removed:
Error: This action runs on Node16 which is deprecated and no longer supported.Common causes
Pinned to a deprecated action major
Old majors (checkout@v1, setup-node@v2, upload-artifact@v3) are deprecated as newer versions ship. They warn first and eventually stop working.
Action built on a removed Node runtime
JavaScript actions declare a Node runtime in their action.yml. When GitHub drops Node 12/16 from runners, actions pinned to those runtimes fail to execute.
How to fix it
Upgrade to a current major
Bump each action to its latest supported major, reading its changelog for breaking changes.
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/upload-artifact@v4Automate version currency
- Enable Dependabot for github-actions so PRs bump deprecated majors automatically.
- Read each action's migration notes - major bumps can change inputs or outputs.
- Pin to a tag or full SHA of the new major after verifying it.
How to prevent it
- Keep actions on supported majors via Dependabot.
- Watch for deprecation warnings in run logs and act before removal.
- Avoid pinning to long-unmaintained action versions.