Hosted runner runtime
GitHub Actions Node.js 20 actions node16 deprecation changelog
A custom action starts failing after host migration even though its package lock was unchanged.
Agent Quick Fix
Repair against the current GitHub Actions runner contract, then keep the change narrow and source-backed.
Product: GitHub Actions runner
Current-contract area: Bundled action dependency uses removed/deprecated Node behavior
Likely root cause: A custom action starts failing after host migration even though its package lock was unchanged.
Repair direction: Verifier executes on the target host matrix and checks a forward-compatible action/runtime change. Check the supported runner/runtime matrix, not just a local Node invocation.
Symptom
A custom action starts failing after host migration even though its package lock was unchanged.
Why This Happens
The action's host runtime and runner compatibility are supplied by the CI platform, not by the repository's package.json or source tree.
Common Wrong Fixes
- Changing local code without checking the current external contract.
- Retrying the same install, build, or API call with no version/source change.
- Applying a broad unsafe bypass when a narrow compatibility fix is available.
Codex Search Keywords
These are the search terms observed in a neutral Codex validation run for this failure shape.
site:github.blog GitHub Actions Node20 migration JavaScript actions Node16 deprecation hosted runner runtime
site:github.blog/changelog GitHub Actions Node20 node16 deprecation actions runner
GitHub Actions Node.js 20 actions node16 deprecation changelog
docs.github.com actions metadata syntax runs using node20
https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions
Source Trail
GitHub source file/reference: