Recent Node.js 502 bad gateway issues

In December of 2018, many Node.js users noticed that their applications randomly returned an HTTP status code 502 “Bad Gateway” error. On the IBM Cloud, the affected applications are deployed as Cloud Foundry applications or as Docker containers in Kubernetes clusters.

The Node.js community immediately noticed the issue and recognized it as a regression bug that will affect different LTS runtime versions (6.14.x and 6.15.x, 8.14.x, and 10.14.x). Further information about this bug can be found in this Github issue on Node.js source code.

Immediately the community started to fix this bug. Before the end of 2018, the community released new minor versions which contain the fix. In particular, the minor versions released are 6.16.x, 8.15.x, and 10.15.x.

Steps to take to resolve the issue

If you have been affected by this issue, you can easily resolve it by forcing your application to use a higher Node.js runtime version from your package.json file.

Here is an example of how to do that:

{
  "name": "get-started-node",
  "main": "server.js",
  "description": "An introduction to developing Node.js apps on the Bluemix platform",
  "version": "0.1.1",
  "private": false,
  "engines": {
    "node": "^7.10.0"
  },
  "scripts": {
    "start": "node server.js"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/IBM-Bluemix/get-started-node"
  },
  "dependencies": {
    "@dynatrace/oneagent": "^1.137.152-1.0.0",
    "body-parser": "^1.17.x",
    "cfenv": "^1.0.x",
    "cloudant": "1.9.x",
    "dotenv": "^4.0.0",
    "express": "^4.15.x",
    "npm": "^6.4.1",
    "semver": "^5.6.0"
  },
  "author": "IBM Corp",
  "license": "Apache-2.0"
}

As you can see, the package.json file contains pretty much all of the dependencies that you need for your app. The most important section is:

"engines": {
    "node": "^7.10.0"
}

As you know, this section specifies which Node.js runtime version is to be used to run the application. Updating the value of this key with a “good” runtime version (e.g., 6.16.x, 8.15.x, or 10.15.x) will resolve this kind of issues.

If you are pushing your application in IBM Cloud on Cloud Foundry (using cf push APP_NAME), you could try to use -b option for setting an older buildpack version, but without changing the Node.js runtime version in package.json, you could still face the issue.

If you are deploying your application as a Docker container inside an IBM Cloud Kubernetes Service cluster and you are using the official Node.js images, you will not face this issue since you will automatically use always the last minor version for the major version chosen.

Was this article helpful?
YesNo

More from Cloud

New IBM study: How business leaders can harness the power of gen AI to drive sustainable IT transformation

3 min read - As organizations strive to balance productivity, innovation and environmental responsibility, the need for sustainable IT practices is even more pressing. A new global study from the IBM Institute for Business Value reveals that emerging technologies, particularly generative AI, can play a pivotal role in advancing sustainable IT initiatives. However, successful transformation of IT systems demands a strategic and enterprise-wide approach to sustainability. The power of generative AI in sustainable IT Generative AI is creating new opportunities to transform IT operations…

X-Force report reveals top cloud threats: AITM phishing, business email compromise, credential harvesting and theft

4 min read - As we step into October and mark the start of Cybersecurity Awareness Month, organizations’ focus on protecting digital assets has never been more important. As innovative new cloud and generative AI solutions help advance today’s businesses, it’s also important to understand how these solutions have added to the complexity of today’s cyber threats, and how organizations can address them. That’s why IBM—as a leading global security, cloud, AI and business service provider—advocates to our global clients to take a proactive…

Top 6 innovations from the IBM – AWS GenAI Hackathon

5 min read - Eight client teams collaborated with IBM® and AWS this spring to develop generative AI prototypes to address real-world business challenges in the public sector, financial services, energy, healthcare and other industries. Over the course of several weeks, cross-functional teams comprising client teams, IBM and AWS representatives worked to design, develop and iterate on prototypes that push the boundaries of what's possible with generative AI. IBM used design thinking and user-centric approach to guide the teams throughout the hackathon. AWS provided…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters