# End of support for Node.js 16 in Netlify Functions: Everything you need to know

**URL:** <https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370>\
**Category:** Updates\
**Created:** [February 29, 2024, 11:59am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370 "2024-02-29T11:59:14Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![biruwon](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/biruwon/32/39030_2.png) [@biruwon](https://answers.netlify.com/u/biruwon)\
**Post date:** [February 29, 2024, 11:59am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/1 "2024-02-29T11:59:14Z")

</div>

[Node.js version 16 reached End of Life](https://nodejs.org/en/about/releases/) (EOL) on September 11, 2023. Netlify Functions will stop supporting serverless function deploys using Node.js 16 on April 25, 2024.

## Who is impacted?

You will be impacted if you have explicitly set the `AWS_LAMBDA_JS_RUNTIME` environment variable to `nodejs16.x`.

If you keep the environment variable set to `nodejs16.x` and deploy any changes to your existing functions on or after April 25, 2024, your build will fail.

If you do not deploy any changes to your functions, they will continue to run; end of support does not impact function execution. However, they will be running on an unsupported runtime that is no longer maintained or patched.

## How to upgrade

You can upgrade your Node runtime and avoid build failures in two ways:

- Set `AWS_LAMBDA_JS_RUNTIME` to `nodejs20.x` as it is a LTS version.
- Remove the `AWS_LAMBDA_JS_RUNTIME` environment variable altogether, in which case we will default to using `nodejs18.x`

## Test your functions on a new runtime

For many functions, upgrading from Node 16 will have no negative effects. For others, the upgraded version may cause bugs or other errors in your newly deployed functions. So it’s a good idea to test your functions first!

[Changing the JavaScript functions runtime](https://docs.netlify.com/functions/optional-configuration/#node-js-version-for-runtime) applies to all Netlify Functions on a site, in all deploys including production. This makes testing your functions in a new runtime a little trickier than the usual routine of making a PR and checking the Deploy Preview.

Here are a few methods you could use to test without risking errors in production:

- **Run your functions locally in the [Netlify CLI](https://docs.netlify.com/cli/get-started/#installation) using the `netlify dev` command.** Whatever version of Node.js you’re running on your computer is the runtime your functions will use locally. You can use a tool like [nvm](https://github.com/nvm-sh/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows) to manage multiple Node.js versions on your computer.

- **Test on Netlify by choosing a different Runtime via [context-specific environment variables](https://docs.netlify.com/environment-variables/overview/#value-per-deploy-context).** You can leave [`AWS_LAMBDA_JS_RUNTIME`](https://docs.netlify.com/functions/optional-configuration/#node-js-version-for-runtime) set to `nodejs16.x` for production and set it to `nodejs20.x` for deploy previews, branches deployments or even specific branches. Then, trigger a deploy preview or branch deploy and test the functions in that deploy.  

## Updating your function code

So you’ve tested your functions in a newer runtime, and one of them doesn’t work!

It’s time to start checking error messages and debugging. The problem will often be caused by one or more dependencies, so a useful strategy is to update dependencies related to your error messages, update your functions code as needed to work with the newer version of the dependency, and test again.

Here are a few resources you may find helpful:

- [Release notes for Node.js v18.0.0](https://nodejs.org/en/blog/release/v18.0.0/)
- [Release notes for Node.js v20.0.0](https://nodejs.org/en/blog/release/v20.0.0/)

Also, always remember the Netlify Forum is here for you! You can ask questions or post additional tips and references in this topic, or start a new topic if it seems significantly different.

---

<div class="post-metadata">

**Author:** ![andystevenson](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/andystevenson/32/32330_2.png) [@andystevenson](https://answers.netlify.com/u/andystevenson)\
**Post date:** [April 17, 2024, 2:13pm UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/2 "2024-04-17T14:13:07Z")

</div>

Hi There… | have a .nvmrc file at 20.11.1 but I am still getting the warning at build time?

```auto
3:08:05 PM: Attempting Node.js version 'v20.11.1' from .nvmrc
3:08:06 PM: v20.11.1 is already installed.
3:08:06 PM: Now using node v20.11.1 (npm v10.2.4)

```

---

<div class="post-metadata">

**Author:** ![biruwon](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/biruwon/32/39030_2.png) [@biruwon](https://answers.netlify.com/u/biruwon)\
**Post date:** [April 18, 2024, 7:34am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/3 "2024-04-18T07:34:17Z")

</div>

Hi Andy,

Do you have set the environment variable AWS\_LAMBDA\_JS\_RUNTIME for your function with a different node version?

Also, you could try to re upload your function making a code change like a line comment or something like that to have a new upload with the latest runtime.

---

<div class="post-metadata">

**Author:** ![andystevenson](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/andystevenson/32/32330_2.png) [@andystevenson](https://answers.netlify.com/u/andystevenson)\
**Post date:** [April 24, 2024, 7:35pm UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/4 "2024-04-24T19:35:37Z")

</div>

Hi biruwon… tried all of that. Still getting the warning. Obviously critical I fix this before tomorrow!

I have also set  
NODE\_ENV=production  
NODE\_VERSION=20.12.1  
AWS\_LAMBDA\_JS\_RUNTIME=20.12.1

.nvmrc to v20.12.1

---

<div class="post-metadata">

**Author:** ![biruwon](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/biruwon/32/39030_2.png) [@biruwon](https://answers.netlify.com/u/biruwon)\
**Post date:** [April 25, 2024, 7:56am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/5 "2024-04-25T07:56:46Z")

</div>

Can you share a deploy ID where you are having that warning? Thanks!

---

<div class="post-metadata">

**Author:** ![andystevenson](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/andystevenson/32/32330_2.png) [@andystevenson](https://answers.netlify.com/u/andystevenson)\
**Post date:** [April 25, 2024, 8:31am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/6 "2024-04-25T08:31:08Z")

</div>

[

[West Warwickshire Sports Complex - Information Base](https://66295d224acf160008f3c974--wwsc-info.netlify.app/)  
[66295d224acf160008f3c974–wwsc-info.netlify.app](https://66295d224acf160008f3c974--wwsc-info.netlify.app/)

[![favicon-180.png](https://global.discourse-cdn.com/netlify/original/3X/0/8/082ed077642b40fb301d1f06d87e80951e9861ca.png)](https://66295d224acf160008f3c974--wwsc-info.netlify.app/)

]([https://66295d224acf160008f3c974--wwsc-info.netlify.app/](https://66295d224acf160008f3c974--wwsc-info.netlify.app/))

Thanks Alex…. I hope this is enough for the deployment ID?

Regards, Andy

---

<div class="post-metadata">

**Author:** ![biruwon](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/biruwon/32/39030_2.png) [@biruwon](https://answers.netlify.com/u/biruwon)\
**Post date:** [April 25, 2024, 8:36am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/7 "2024-04-25T08:36:56Z")

</div>

I can confirm you are using nodejs20 for your functions, so you won’t have any problems. We will review the build warning

---

<div class="post-metadata">

**Author:** ![Quentin](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/quentin/32/28854_2.png) [@Quentin](https://answers.netlify.com/u/Quentin)\
**Post date:** [May 9, 2024, 6:18pm UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/8 "2024-05-09T18:18:30Z")

</div>

Hello @biruwon!

Any update on removing the warning for projects that are using a `.nvmrc` with a version \>16? It is quite confusing at the moment.

---

<div class="post-metadata">

**Author:** ![biruwon](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/biruwon/32/39030_2.png) [@biruwon](https://answers.netlify.com/u/biruwon)\
**Post date:** [May 10, 2024, 10:31am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/9 "2024-05-10T10:31:09Z")

</div>

Not yet, but we have an issue for it and will try to resolve as soon as possible.

---

<div class="post-metadata">

**Author:** ![andystevenson](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/andystevenson/32/32330_2.png) [@andystevenson](https://answers.netlify.com/u/andystevenson)\
**Post date:** [June 13, 2024, 7:41pm UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/10 "2024-06-13T19:41:39Z")

</div>

Hi still getting this warning on every build!

---

<div class="post-metadata">

**Author:** ![hrishikesh](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/hrishikesh/32/74607_2.png) [@hrishikesh](https://answers.netlify.com/u/hrishikesh)\
**Post date:** [June 16, 2024, 11:21am UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/11 "2024-06-16T11:21:34Z")

</div>

Any reason why the warning is causing an issue for you? It’s safe to ignore it.

---

<div class="post-metadata">

**Author:** ![Quentin](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/quentin/32/28854_2.png) [@Quentin](https://answers.netlify.com/u/Quentin)\
**Post date:** [November 14, 2024, 4:01pm UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/12 "2024-11-14T16:01:18Z")

</div>

Well… not to be overly insisting but warnings are rarely made to be ignored. In this case it creates confusion “warning your node version 16 is deprecated” while we are not using node 16 is not something common.

Errors in project configuration are often the most dangerous so any warning about a potential misconfiguration is usually worth to be investigated. And that is for that exact reason I believe you created this warning in the first place: because potential deprecation and security implications are not to be ignored.

---

<div class="post-metadata">

**Author:** ![jmooring](https://sea1.discourse-cdn.com/netlify/user_avatar/answers.netlify.com/jmooring/32/35363_2.png) [@jmooring](https://answers.netlify.com/u/jmooring)\
**Post date:** [February 22, 2025, 7:29pm UTC](https://answers.netlify.com/t/end-of-support-for-node-js-16-in-netlify-functions-everything-you-need-to-know/113370/14 "2025-02-22T19:29:21Z")

</div>

> [@Quentin](#):
>
> Errors in project configuration are often the most dangerous so any warning about a potential misconfiguration is usually worth to be investigated.

I agree, but would probably change “usually” to “always”.

I just wasted 15 minutes on this.
