Node engines parameter in package.json not being respected?

We specify a node version in our package.json, as documented by Render here. The package.json is in the directory root, we don’t use .node-version or .nvmrc. This has previously worked for a long time, except when it’s been broken in the past (thread and thread)

Nov 29 02:30:25 PM ==> Cloning from https://github.com/getmicro/webbase
Nov 29 02:30:27 PM ==> Checking out commit a85f4d07155eac917b4ecb603387718e6d4653b6 in branch master
Nov 29 02:30:42 PM ==> Downloading cache…
Nov 29 02:31:02 PM ==> Downloaded 226MB in 7s. Extraction took 12s.
Nov 29 02:31:05 PM ==> Detected Node version 14.17.0
Nov 29 02:31:08 PM ==> Running build command ‘yarn; yarn build:prod’…
Nov 29 02:31:08 PM yarn install v1.22.5
Nov 29 02:31:08 PM [1/5] Validating package.json…
Nov 29 02:31:08 PM error webbase@0.0.1: The engine “node” is incompatible with this module. Expected version “^16.3.0”. Got “14.17.0”
Nov 29 02:31:08 PM error Found incompatible module.
Nov 29 02:31:08 PM info Visit yarn install | Yarn for documentation about this command.
Nov 29 02:31:09 PM yarn run v1.22.5
Nov 29 02:31:09 PM error webbase@0.0.1: The engine “node” is incompatible with this module. Expected version “^16.3.0”. Got “14.17.0”
Nov 29 02:31:09 PM error Commands cannot run with an incompatible environment.
Nov 29 02:31:09 PM info Visit yarn run | Yarn for documentation about this command.
Nov 29 02:31:09 PM ==> Build failed :disappointed:

Has something changed? This is preventing us from deploying.

Specifying an explicit version in NODE_VERSION seems to work as a workaround.

Hi @cldellow, thank you for flagging this. We are working on a fix for this and will update you once it’s available. In the meantime, like you mentioned, you can workaround this by specifying the NODE_VERSION environment variable.

Hello @cldellow,

We have made a fix to make sure that we are using the node version in your package.json, you should see the correct behaviour on future deploys.

Great, thank you!