Breaking change in render's build environment: previously working commit now failing to build on render, works locally

After a seemingly innocent change yesterday (commit), my render build started failing. I have reverted to the last working commit, but the render build is still failing.

The build succeeds locally, including with the version of node.js used by render.

What has changed in render’s build environment?

Your last successful deployment was likely not on Node 23.2.0, we’ve been seeing lots of breakage in Node 23.2.0, and your Node version specification resolves to always using the latest version ( personal-website/package.json at 2d9df1995401847293f23ae48f8f7a5f89186a96 · samuela/personal-website · GitHub ). So after Node 23.2.0 came out and a new deployment picked it up, the deployment failed.

Set it to 23.1.0 ( Setting Your Node.js Version – Render Docs ), and see if that helps.

Thanks Jason, I’ll give that a shot. In the meantime it looks like these docs are out of date then?

I have tested setting NODE_VERSION to 23.1.0 as well as every historic node version as determined by this table in the docs. None of them build successfully. What else has changed in render’s build environment recently?

Here’s the most recent successful deployment with this same commit. Screenshot for good measure:

Happy to share any other info that may be helpful.

Our docs are not out of date, the Node version problem I described is happening to your service because of your code’s package.json’s specification. I do not recall any changes we made to Node build environments between October 22nd and now. In order to provide further assistance you would need to provide output of the deploy logs to see the actual error occurring.

If you would rather contact us directly instead of posting that publicly, you can. The best way is via the ‘Contact Support’ link on Render Dashboard.

My package.json specifies:

  "engines": {
    "node": ">=16"
  },

Render’s current default version according to the table is 22.10.0. Should that mean that version 22.10.0 is selected?

Roger that, created support ticket #2527.

Render’s default is used if you do not specify a version of Node via one of the 4 mechanisms explained in https://docs.render.com/node-version . If you did none of those, then the Render default applies.

But you have an explicit version configuration of “any release greater than 16”, which means you will always get the latest release no matter what.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.