Node 20 No Longer Available on GitHub Actions Runners
GitHub has announced the final notification regarding the removal of Node 20 from its Actions runners, transitioning JavaScript actions entirely to Node 24 and phasing out temporary opt-out mechanisms.

Transition to Node 24 and End of Node 20 Support
GitHub has issued its final notification regarding the complete removal of Node 20 from GitHub Actions runners. According to official updates released through the GitHub Changelog, runners now exclusively utilize Node 24 for all JavaScript actions. Furthermore, the temporary ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION opt-out configuration is no longer available to developers seeking to extend legacy runtime usage.
This operational shift follows a structured deprecation timeline originally outlined by the platform. For comprehensive background information regarding the initial phase-out period, developers can review the previous announcement changelog provided by the platform engineering teams.
Required Updates for Action Maintainers
Developers who maintain custom JavaScript actions must take immediate action to ensure compatibility with the updated runner infrastructure. Specifically, maintainers are required to update the runs.using value within their configuration to node24 and publish a brand new release as quickly as possible. For detailed configuration parameters and formatting structures, developers should consult the official metadata syntax for JavaScript actions.
Failing to update these values may result in workflow failures as runner environments reject outdated runtime specifications. The platform has prioritized this architectural upgrade to maintain high standards of performance and security across all continuous integration pipelines.
Workflow Adjustments for End Users
In addition to action maintainers, developers who consume third-party JavaScript actions within their CI/CD pipelines must also adapt to the new standard. Workflows should be audited to ensure they reference the latest versions of actions that have been fully updated to support Node 24. Guidance on targeting specific stable revisions can be found via the documentation on using versions for actions.
To streamline this migration for the wider community, all first-party actions provided by GitHub have already been thoroughly updated to operate on Node 24, as documented in the historic rollout records.
Hardware and Operating System Compatibility
The transition to Node 24 introduces specific hardware and operating system constraints that affect self-hosted runner deployments. Notably, Node 24 is inherently incompatible with macOS versions 13.4 and earlier. Additionally, the runtime environment does not provide official support for ARM32 architectures.
Consequently, any self-hosted runner instances operating on these restricted operating systems or hardware architectures are no longer supported by the platform. Administrators managing self-hosted infrastructure must upgrade their underlying nodes to compatible environments to maintain uninterrupted integration services.
Scope of the Deployment and Ecosystem Impact
The deprecation and removal of Node 20 apply universally across github.com as well as GitHub deployments utilizing Data Residency features. This widespread enforcement ensures a unified runtime standard across all cloud and enterprise-managed developer ecosystems.
As the development community transitions away from legacy runtimes, engineers are encouraged to monitor ongoing updates regarding infrastructure modernization, such as the rollout of Ubuntu 26 generally available and latest migration strategies.
Broader Platform Enhancements and Security
The retirement of unsecure runtime versions forms part of a broader platform initiative to harden software development supply chains. Alongside runtime updates, recent platform enhancements include workflow execution protections in GitHub Actions generally available, which safeguard build pipelines against unauthorized modifications.
Furthermore, developers can leverage additional feature controls to optimize build performance and security, such as the ability to control GitHub Actions cache access with cache-mode, ensuring precise permission scoping across complex multi-branch organizational workflows.
Sources
- GitHub ChangelogNode 20 is no longer available in GitHub Actions