https://semver.io is having a several hour period of instability, which means that render services that specify a node version have been failing to launch off-and-on for the past several hours.
If specifying a node version is not a supported feature, is there a workaround that I can do as an end user?
If specifying a node version is a supported feature, can render migrate away from using semver.io?
Looks like we’re hitting the same issue (I just posted here), and your investigation is further along than mine. Render definitely needs a better way to support specifying a Node.js version.
My deploy is suddenly failing in Render because my desired Node.js version—14.14—apparently can’t be found. I’ve been using this version of Node.js with no problems in Render for 8 months; it’s defined in my package.json as described in the Render docs like this:
"engines": {
"node": "~14.14"
}
Here’s the relevant error in my Render logs:
Jun 2 06:52:17 AM ==> Running build command 'npm install'...
Jun 2 06:52:17 AM npm ERR! code ENOTSUP
Jun 2 06:52:17 AM npm ERR! notsup Unsupported engine for <redacted>: wanted: {"node":"~14.14"} (current: {"node":"14.15.0","npm":"6.14.8"})
There’s also some HTML output in the logs, with an iframe pointing to a generic Heroku error page:
Jun 2 06:52:00 AM ==> Cloning from https://github.com/GrioSF/pyvott...
Jun 2 06:52:02 AM ==> Checking out commit 5c8afc949a86552bd2805c6d651c81f280fbb5b9 in branch master
Jun 2 06:52:17 AM ==> Detected Node version <!DOCTYPE html>
Jun 2 06:52:17 AM <html>
Jun 2 06:52:17 AM <head>
Jun 2 06:52:17 AM <meta name="viewport" content="width=device-width, initial-scale=1">
Jun 2 06:52:17 AM <meta charset="utf-8">
Jun 2 06:52:17 AM <title>Application Error</title>
Jun 2 06:52:17 AM <style media="screen">
Jun 2 06:52:17 AM html,body,iframe {
Jun 2 06:52:17 AM margin: 0;
Jun 2 06:52:17 AM padding: 0;
Jun 2 06:52:17 AM }
Jun 2 06:52:17 AM html,body {
Jun 2 06:52:17 AM height: 100%;
Jun 2 06:52:17 AM overflow: hidden;
Jun 2 06:52:17 AM }
Jun 2 06:52:17 AM iframe {
Jun 2 06:52:17 AM width: 100%;
Jun 2 06:52:17 AM height: 100%;
Jun 2 06:52:17 AM border: 0;
Jun 2 06:52:17 AM }
Jun 2 06:52:17 AM </style>
Jun 2 06:52:17 AM </head>
Jun 2 06:52:17 AM <body>
Jun 2 06:52:17 AM <iframe src="//www.herokucdn.com/error-pages/application-error.html"></iframe>
Jun 2 06:52:17 AM </body>
Jun 2 06:52:17 AM </html>
Has something changed? We haven’t changed our code, but our node cron job is again failing to start for the past hour. A sample failure looks like:
Jun 7 04:31:30 PM ==> Starting service with 'yarn start:prod-cron'
Jun 7 04:31:32 PM yarn run v1.22.5
Jun 7 04:31:33 PM error webbase@0.0.1: The engine "node" is incompatible with this module. Expected version "^15.4.0". Got "14.17.0"
Jun 7 04:31:33 PM error Commands cannot run with an incompatible environment.
Jun 7 04:31:33 PM info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
It looks different from previous failures - doesn’t have the Heroku HTML spew, and semver.io is still up.
Also having this issue with a background cron job that started today. @anurag
Jun 7 01:41:01 PM error @: The engine "node" is incompatible with this module. Expected version "13.2.0". Got "14.17.0"
Jun 7 01:41:01 PM error Commands cannot run with an incompatible environment.
@cldellow@likeaj6 You can specify a version with NODE_VERSION environment variable as a workaround right now. We’re really sorry about the inconvenience.
This ended up being a small config mismatch with the underlying Node image and our control plane code. Deploying a new version of the control plane fixed the issue. We’ve created an internal task to prevent this from happening again. Sorry for the trouble!