GitHub Actions Deprecates Node 20 and Enforces Node 24 for JavaScript Actions
GitHub has completely removed Node 20 from GitHub Actions runners, forcing all JavaScript actions to run on Node 24 and disabling the temporary fallback environment variable.

GitHub has completed the transition of its JavaScript actions runner environment to Node 24, officially ending support for Node 20. The temporary bypass mechanism, which allowed users to force the execution of older Node versions via the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION environment variable, has been completely disabled. As a result, all custom and third-party JavaScript actions are now required to execute on Node 24.
Primary source
Open GitHub Changelog ↗This article summarizes the source. Check the original for full details and conditions.
Comparison
| Aspect | Before / Alternative | After / This |
|---|---|---|
| Node Runtime Version | Node 20 (with temporary opt-out) | Node 24 (strictly enforced) |
| Bypass Environment Variable | ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION allowed fallback | Variable is ignored and no longer functional |
| Minimum macOS Version | Supported older macOS versions | Requires macOS 13.5 or later (macOS 13.4 and older unsupported) |
| ARM32 Architecture | Supported on self-hosted runners | Unsupported due to Node 24 engine limitations |
Action Checklist
- Update action metadata files Set the runs.using property to node24 in your action.yml files.
- Upgrade third-party workflow actions Check and update community-maintained actions to their latest versions that support Node 24.
- Verify self-hosted runner operating systems Ensure macOS self-hosted runners are upgraded to at least macOS 13.5.
- Decommission ARM32 runners Migrate self-hosted workloads on ARM32 architectures to supported platforms like ARM64.



