Application 'appname' failed to start (port 8080 not available) on open shift node app Application 'appname' failed to start (port 8080 not available) on open shift node app node.js node.js

Application 'appname' failed to start (port 8080 not available) on open shift node app


The very first step that you need to check is look at the log under ~/app-root/logs/nodejs.log

In my case there was no issue with package or any kind of access. The only information that I have got in log is:

Error: listen EACCES at errnoException (net.js:905:11) at Server._listen2 (net.js:1024:19)

If you cannot find any reason apart from the front console says that it is unable to access 8080 then make sure that you have specified IP ADDRESS along with PORT Number.

This is how I have fixed it.

var express = require('express');var app = express();var http = require('http');app.set('port', process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || 3002);app.set('ip', process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1");http.createServer(app).listen(app.get('port') ,app.get('ip'), function () {    console.log("✔ Express server listening at %s:%d ", app.get('ip'),app.get('port'));    server();});

As stated the app.get('ip') is very important when listening. Otherwise, openshift is unable to start your application.

UPDATED:

How to get into log directory:

  1. SSH into your gear with the command rhc ssh
  2. Once you are logged in type cd $OPENSHIFT_LOG_DIR

There you have logs files stored by Openshift environment.


It can be for a number of reasons. If nodejs does not start correctly, the PaaS seems to be trying to continuously start it. It either creates a collision for the port or the error has nothing to do with the problem itself. In my case there was a dependency missing. The best way to solve your problem is to ssh in the app container and watch the log file: tail -f ~/app-root/logs/nodejs.log


solved the issue by setting my mongo db username and password