Lesstep
GitHub Actions · Checked November 3, 2026

GitHub Actions: "Node.js 20 is deprecated" warning

One or more actions in the job declare Node 20 as their runtime. GitHub removed Node 20 from its runners on September 23, 2026, so the runner ran them on Node 24 anyway and left this warning. The job did not fail because of it. To make it go away, move each named action to a version built for Node 24.

What it looks like

The annotation on a public run on October 30, 2026 (runner 2.338.2):

Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

What it changes now

Finding the line that pins it

The first Node 24 version of the actions it names most

From each action's action.yml at its tags on November 3, 2026, in order of how many public issues and pull requests since October 1 mention the action together with this warning:

A new major version can change inputs or defaults, so read its release notes before moving. For example, actions/download-artifact v8 fails on a hash mismatch by default, where v7 only warned.

To get these updates as pull requests from now on, let Dependabot watch the workflow files:

# .github/dependabot.yml
version: 2
updates:
  - package-ecosystem: github-actions
    directory: /
    schedule:
      interval: weekly

When the job did fail

Most Node 20 actions keep working on Node 24, so a red job usually has another cause; look at the error annotation, not this warning. In October two projects suspected the forced runtime and moved to a Node 24 release: actions/labeler@v4 failing with "Parameter token or opts.auth is required" (semantic-fleet #105), and a post-job step of DeterminateSystems/magic-nix-cache-action@v8 crashing after the job's own work had passed (some-ui #2362).

If you maintain a JavaScript action, set runs.using: node24 in its action.yml and publish a new release, ideally a new major version, so that users who follow the major tag get it.

See failed jobs from IntelliJ IDEA

Pipeline Inbox for GitHub Actions Workflows, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, lists the runs of all your repositories in an IDE tool window, with their jobs and steps, and your current branch's runs are in the status bar. Reading is free; re-running failed jobs, cancelling, running workflows and reviewing deployments are Pro (US$1.50 a month, with a 30-day trial).

GitHub and GitHub Actions are trademarks of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o. Node.js is a trademark of the OpenJS Foundation. This page is not affiliated with, sponsored or endorsed by GitHub, Inc., the OpenJS Foundation or JetBrains.

More: "Unable to resolve action" · ubuntu-latest moving to Ubuntu 26.04 · The retired macos-14 label · "Resource not accessible by integration" · GitHub Actions plugins for IntelliJ IDEA compared · 日本語