Node.js 16 actions are deprecated CI/CD Origin: Build & delivery Last updated 25 Oct 2026

GitHub Actions: Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3

A warning that actions in your workflow still run on an old Node.js runtime; update them to current major versions.

Exact message you may see Node.js 16 actions are deprecatedNode.js 12 actions are deprecatedPlease update the following actions to use Node.js 20Node.js 20 actions are deprecatedactions are deprecated. Please update
Seen on: GitHub Actions

Meaning

Each GitHub action declares which Node runtime it uses. When GitHub retires a runtime (Node 12, 16, 20…), runs show this annotation and later fail. Upgrading the action to its latest major (checkout@v4, setup-node@v4) fixes it. Dependabot can open the PRs for you.

Common causes

  • Old action versions pinned (@v2, @v3)
  • Third-party action not maintained and still on Node 12/16
  • Vendored copy of an action
  • Version pinned to a commit SHA of an old release

⚡ Quick fix

  1. Bump each named action to its newest major version
  2. Enable Dependabot for github-actions
  3. Replace unmaintained actions with maintained ones or plain scripts

Detailed fix by platform

GitHub Actions

  1. .github/dependabot.yml: updates: [{ package-ecosystem: "github-actions", directory: "/", schedule: { interval: "weekly" } }]

Code examples

Update the versions

yaml
steps:
  - uses: actions/checkout@v4          # was @v3 (Node 16)
  - uses: actions/setup-node@v4        # was @v3
    with: { node-version: 20 }

How to diagnose

  1. Actions — Which actions does the annotation list?
  2. Versions — Latest major available?
  3. Maintained — Is the action still maintained?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):

API rate limit exceeded — GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit (CI/CD)API rate limit exceed…Cache not found / Unable to reserve cache — GitHub Actions: Cache not found for input keys: npm-Linux-abc123 / Failed to save: Unable to reserve cache with key, another job may be creating this cache (CI/CD)Cache not found / Una…Credentials could not be loaded — GitHub Actions: Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers (CI/CD)Credentials could not…deprecated version of actions/upload-artifact — GitHub Actions: Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v3` (CI/CD)deprecated version of…set-output command is deprecated — GitHub Actions: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files (CI/CD)set-output command is…the attribute version is obsolete — WARN: the attribute `version` is obsolete, it will be ignored (Docker)the attribute version…The set-env command is disabled — GitHub Actions: Error: Unable to process command '::set-env name=X::y' successfully. The `set-env` command is disabled (CI/CD)The set-env command i…Unable to download artifact — GitHub Actions: Error: Unable to download artifact(s): Artifact not found for name: build (CI/CD)Unable to download ar…Node.js 1…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.