Skip to content

Amplify does not automatically upgrade to node 22 after end of support announcement

0

I'm using Amplify to build and deploy the app The current in my app

  • Build image: Amazon Linux 2023
  • Live package updates: None

the amplify.yaml setting

frontend:
  phases:
    preBuild:
      commands:
        - node -v
        - yarn install
    build:
      commands:
      - yarn fetch-shared-files
      - yarn run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

When run build, the node version still be v18.

According to the docs of Amplify: Amplify support for apps using Node.js versions 14, 16, and 18 ends on September 15, 2025. The behavior after this date depends on your application type:

Today is September 16, 2025. When I redeploy the app, the current Node version remains v18? And it still deploys successfully. But the docs said

If you are using the Amazon Linux 2023 build image, Node.js version 20 is supported by default. Starting on September 15, 2025, the AL2023 image will automatically support Node.js 22 and change its default Node.js version from 18 to 22.

I think when I redeploy the app, the node version should be 22, but the log in build console is node v18? So I have confusion about it? Do I need to set the static node version for the build like

    - nvm install 22
    - nvm use 22
    - node -v

Or don't need do anything?

asked 19 days ago152 views
2 Answers
0

You’re not missing anything — this is expected behavior right now. Even though Node 22 is now supported on AL2023, Amplify doesn’t force an upgrade automatically on existing apps — it keeps your build running on the last known working Node version (v18 in your case) for stability.

If you want to test or migrate to Node 22, you can either:

Explicitly install Node 22 in amplify.yml using:

preBuild: commands: - nvm install 22 - nvm use 22 - node -v - yarn install

Or set a runtime override in the Amplify console (if they’ve rolled that out for your app type).

I’d suggest explicitly setting Node 22 in your build to avoid a surprise later. AWS usually gives a grace period before they deprecate the old runtime completely, which is why your build still succeeds today.

answered 19 days ago
0

Based on the information provided, there appears to be a misunderstanding about the timeline and automatic upgrade process for Node.js versions in AWS Amplify.

The end of support date for Node.js 14, 16, and 18 in AWS Amplify is September 15, 2025 - which is still in the future, not yesterday. This means Amplify will continue to support these Node.js versions until that date next year.

According to the documentation you referenced, the Amazon Linux 2023 build image currently supports Node.js 20 by default, but it will only automatically change its default Node.js version from 18 to 22 starting on September 15, 2025. Since that date hasn't arrived yet, your deployments are still using Node.js 18 as expected.

If you want to upgrade to Node.js 22 before the automatic transition date, you'll need to explicitly specify the Node.js version in your Amplify configuration. You can do this by:

  1. Adding a nodeVersion setting in your amplify.yml file:
settings:
nodeVersion: "22"
  1. Or by using nvm commands in your preBuild phase:
preBuild:
commands:
- nvm install 22
- nvm use 22
- node -v
  1. You can also specify Node.js version requirements in your package.json:
"engines": {
"node": ">=22.0.0"
}

The automatic upgrade to Node.js 22 will only happen after the end of support date next year, not immediately.
Sources
How to identify Nodejs version being use for Amplify app using Next.js - SSR Framework | AWS re:Post
my amplify deploy app problem | AWS re:Post

answered 19 days ago