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

**Code:** `Node.js 16 actions are deprecated` · **Category:** CI/CD · **Seen on:** GitHub Actions

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

## 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?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/cicd/gha-node-actions-deprecated)
