I'm having trouble running my node application on Bluemix

I am trying to run a node application on Bluemix and get a weird error. My application runs locally. I copied a fragment from my application below.

var express = require("express"), app = express(); app.get("/", function (request, response) { response.render("index"); }); app.listen(8080); 

My application never runs on Bluemix. The error I get on Bluemix is โ€‹โ€‹below.

 [11:07 AM] jsloyer@Jeffs-MacBook-Pro [testapp]>cf push myapp Creating app myapp in org myemail@co.com / space demos as myemail@co.com... OK Creating route myapp.mybluemix.net... OK Binding myapp.mybluemix.net to myapp... OK Uploading myapp... Uploading app files from: /Users/jsloyer/Downloads/testapp Uploading 566, 2 files Done uploading OK Starting app myapp in org myemail@co.com / space demos as myemail@co.com... -----> Downloaded app package (4.0K) -----> Node.js Buildpack Version: v1.15-20150331-2231 -----> Resetting git environment TIP: Specify a node version in package.json -----> Defaulting to latest stable node: 0.10.38 -----> Installing IBM SDK for Node.js from cache -----> Checking and configuring service extensions -----> Installing dependencies npm WARN package.json bluemix-deploy@ No description npm WARN package.json bluemix-deploy@ No repository field. npm WARN package.json bluemix-deploy@ No README data โ”œโ”€โ”€ methods@0.1.0 โ”œโ”€โ”€ parseurl@1.0.1 โ”œโ”€โ”€ merge-descriptors@0.0.2 โ”œโ”€โ”€ escape-html@1.0.1 โ”œโ”€โ”€ debug@0.8.1 โ”œโ”€โ”€ cookie-signature@1.0.3 โ”œโ”€โ”€ fresh@0.2.2 โ”œโ”€โ”€ range-parser@1.0.0 โ”œโ”€โ”€ qs@0.6.6 โ”œโ”€โ”€ buffer-crc32@0.2.1 โ”œโ”€โ”€ cookie@0.1.0 โ”œโ”€โ”€ path-to-regexp@0.1.2 โ”œโ”€โ”€ accepts@1.0.0 ( negotiator@0.3.0 , mime@1.2.11 ) โ”œโ”€โ”€ send@0.2.0 ( mime@1.2.11 ) -----> Caching node_modules directory for future builds -----> Cleaning up node-gyp and npm artifacts -----> No Procfile found; Adding npm start to new Procfile -----> Building runtime environment -----> Checking and configuring service extensions -----> Installing App Management -----> Uploading droplet (8.9M) 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 down 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting FAILED Start app timeout TIP: use 'cf logs myapp --recent' for more information 

Here are the logs from which the application is trying to deploy.

 [11:10 AM] jeff@jeffs-mbp [node-red]>cf logs myapp --recent Connected, dumping recent logs for app myapp in org myemail@co.com / space demos as myemail@co.com... 2015-04-09T11:07:12.97-0400 [API] OUT Created app with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 2015-04-09T11:07:16.60-0400 [API] OUT Updated app with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 ({"route"=>"e518e637-6b86-4110-8359-b8cdeda946e2"}) 2015-04-09T11:07:48.28-0400 [DEA] OUT Got staging request for app with id de2f73ce-e19a-4daa-b4a9-6ab59588a069 2015-04-09T11:08:13.54-0400 [API] OUT Updated app with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 ({"state"=>"STARTED"}) 2015-04-09T11:08:13.71-0400 [STG] OUT -----> Downloaded app package (4.0K) 2015-04-09T11:08:14.39-0400 [STG] OUT -----> Node.js Buildpack Version: v1.15-20150331-2231 2015-04-09T11:08:14.39-0400 [STG] OUT -----> Resetting git environment 2015-04-09T11:08:14.84-0400 [STG] OUT TIP: Specify a node version in package.json 2015-04-09T11:08:14.84-0400 [STG] OUT -----> Defaulting to latest stable node: 0.10.38 2015-04-09T11:08:14.84-0400 [STG] OUT -----> Installing IBM SDK for Node.js from cache 2015-04-09T11:08:15.27-0400 [STG] OUT -----> Checking and configuring service extensions 2015-04-09T11:08:15.39-0400 [STG] OUT -----> Installing dependencies 2015-04-09T11:08:16.14-0400 [STG] OUT npm WARN package.json bluemix-deploy@ No description 2015-04-09T11:08:16.14-0400 [STG] OUT npm WARN package.json bluemix-deploy@ No repository field. 2015-04-09T11:08:16.14-0400 [STG] OUT npm WARN package.json bluemix-deploy@ No README data 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ methods@0.1.0 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ parseurl@1.0.1 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ merge-descriptors@0.0.2 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ escape-html@1.0.1 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ debug@0.8.1 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ cookie-signature@1.0.3 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ fresh@0.2.2 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ range-parser@1.0.0 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ qs@0.6.6 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ buffer-crc32@0.2.1 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ cookie@0.1.0 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ path-to-regexp@0.1.2 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ accepts@1.0.0 ( negotiator@0.3.0 , mime@1.2.11 ) 2015-04-09T11:08:18.57-0400 [STG] OUT โ”œโ”€โ”€ send@0.2.0 ( mime@1.2.11 ) 2015-04-09T11:08:18.64-0400 [STG] OUT -----> Caching node_modules directory for future builds 2015-04-09T11:08:18.69-0400 [STG] OUT -----> Cleaning up node-gyp and npm artifacts 2015-04-09T11:08:18.70-0400 [STG] OUT -----> No Procfile found; Adding npm start to new Procfile 2015-04-09T11:08:18.71-0400 [STG] OUT -----> Building runtime environment 2015-04-09T11:08:18.71-0400 [STG] OUT -----> Checking and configuring service extensions 2015-04-09T11:08:18.86-0400 [STG] OUT -----> Installing App Management 2015-04-09T11:08:19.07-0400 [STG] ERR 2015-04-09T11:08:22.56-0400 [STG] OUT -----> Uploading droplet (8.9M) 2015-04-09T11:08:29.25-0400 [DEA] OUT Starting app instance (index 0) with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 2015-04-09T11:08:56.16-0400 [App/0] OUT 2015-04-09T11:08:56.16-0400 [App/0] OUT > bluemix-deploy@ start /home/vcap/app 2015-04-09T11:08:56.16-0400 [App/0] OUT > node app.js 2015-04-09T11:09:55.54-0400 [DEA] ERR Instance (index 0) failed to start accepting connections 2015-04-09T11:09:55.58-0400 [API] OUT App instance exited with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 payload: {"cc_partition"=>"default", "droplet"=>"de2f73ce-e19a-4daa-b4a9-6ab59588a069", "version"=>"0d4e67c9-1c0c-4e11-bbfb-027bb45e0d67", "instance"=>"eab34911da3947a3bb1b9e2a5564da72", "index"=>0, "reason"=>"CRASHED", "exit_status"=>-1, "exit_description"=>"failed to accept connections within health check timeout", "crash_timestamp"=>1428592195} 2015-04-09T11:09:56.14-0400 [App/0] ERR 2015-04-09T11:10:28.80-0400 [DEA] OUT Starting app instance (index 0) with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 

Any ideas?

+5
source share
3 answers

I found out that this was a problem with Cloud Foundry starting my application.

In digging my code, I tried to locally communicate with port 8080. This is good, but, however, in Cloud Foundry you need to bind to the specified port. To do this, you need to read the environment variable called VCAP_APP_PORT . I pasted the code snippet below as I fixed it.

 var express = require("express"), app = express(); var port = process.env.VCAP_APP_PORT || 8080; app.get("/", function (request, response) { response.render("index"); }); app.listen(port); 
+7
source

Another suggestion: add this before calling app.listen(...)

 process.on('uncaughtException', function (err) { console.log(err); }); 

A useful stack trace will be added to your console logs if the startup code is not executed for an unforeseen reason instead of receiving the error message "application with error".

+3
source

You can remove this text from the .stack property from any Error . For instance:

 try { throw new Error(); } catch (e) { console.log(e.stack); } 

or just a new error to get the stack trace using console.log(new Error().stack) . This piece of code will receive a stack trace at any point, and not just in the catch .

+2
source

All Articles