4

I'm having troubles deploying a react app to heroku. I'm using the following boilerplate as a starting point: https://github.com/reactGo/reactGo, but I combined it with an existing app of mine. I tested it locally and it runs/builds fine, but heroku gives me the following errors:

2017-05-10T21:43:07.399992+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-05-10T21:43:07.400522+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-05-10T21:43:07.615526+00:00 heroku[web.1]: Process exited with status 137
2017-05-10T21:43:07.631086+00:00 heroku[web.1]: State changed from starting to crashed
2017-05-10T21:43:07.632321+00:00 heroku[web.1]: State changed from crashed to starting
2017-05-10T21:43:13.661987+00:00 heroku[web.1]: Starting process with command `npm start`
2017-05-10T21:43:16.475503+00:00 app[web.1]:
2017-05-10T21:43:16.475524+00:00 app[web.1]: > [email protected] start /app
2017-05-10T21:43:16.475526+00:00 app[web.1]: > npm run build && cross-env NODE_ENV=production node compiled/server.js
2017-05-10T21:43:16.475526+00:00 app[web.1]:
2017-05-10T21:43:16.944768+00:00 app[web.1]:
2017-05-10T21:43:16.944783+00:00 app[web.1]: > [email protected] build /app
2017-05-10T21:43:16.944787+00:00 app[web.1]: > npm run clean && cross-env NODE_ENV=production npm run webpack -- --env.browser && cross-env NODE_ENV=production npm run webpack -- --env.server
2017-05-10T21:43:16.944788+00:00 app[web.1]:
2017-05-10T21:43:17.328771+00:00 app[web.1]:
2017-05-10T21:43:17.328785+00:00 app[web.1]: > [email protected] clean /app
2017-05-10T21:43:17.328786+00:00 app[web.1]: > rimraf public && rimraf compiled
2017-05-10T21:43:17.328787+00:00 app[web.1]:
2017-05-10T21:43:18.095069+00:00 app[web.1]:
2017-05-10T21:43:18.095084+00:00 app[web.1]: > [email protected] webpack /app
2017-05-10T21:43:18.095085+00:00 app[web.1]: > webpack --colors --display-error-details --config ./webpack/webpack.config.js "--env.browser"
2017-05-10T21:43:18.095086+00:00 app[web.1]:
2017-05-10T21:43:18.812288+00:00 app[web.1]: Running webpack in production mode on browser
2017-05-10T21:43:35.602105+00:00 heroku[run.4255]: Process exited with status 130
2017-05-10T21:43:35.611860+00:00 heroku[run.4255]: State changed from up to complete
2017-05-10T21:43:59.732215+00:00 heroku[web.1]: Process running mem=543M(106.1%)
2017-05-10T21:43:59.732277+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2017-05-10T21:44:13.716290+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-05-10T21:44:13.716376+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-05-10T21:44:13.741192+00:00 app[web.1]: Error waiting for process to terminate: No child processes
2017-05-10T21:44:13.966647+00:00 heroku[web.1]: State changed from starting to crashed
2017-05-10T21:44:13.954005+00:00 heroku[web.1]: Process exited with status 22
2017-05-10T21:44:16.287420+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=boiling-spire-17544.herokuapp.com request_id=d4b52f95-a50e-4579-84a0-3b7411726415 fwd="24.207.50.90" dyno= connect= service= status=503 bytes= protocol=https
2017-05-10T21:44:24.777756+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=boiling-spire-17544.herokuapp.com request_id=1463bd52-de1d-4351-960d-aedf412c622a fwd="24.207.50.90" dyno= connect= service= status=503 bytes= protocol=https
2017-05-10T21:44:25.694845+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=boiling-spire-17544.herokuapp.com request_id=7735e9de-bc4d-4535-b06e-b004b9cc4c8b fwd="24.207.50.90" dyno= connect= service= status=503 bytes= protocol=https
2017-05-10T21:47:47.310866+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=boiling-spire-17544.herokuapp.com request_id=de042817-c34a-45e1-88ba-03eaeb78dd19 fwd="24.207.50.90" dyno= connect= service= status=503 bytes= protocol=https
2017-05-10T21:47:48.232781+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=boiling-spire-17544.herokuapp.com request_id=8edae68e-5bb8-444e-94e3-cffafb392b15 fwd="24.207.50.90" dyno= connect= service= status=503 bytes= protocol=https

Here's what I have unsuccessfully tried: -restarting heroku -verifying that the port is dynamically installed

Any suggestions?

2 Answers 2

4
+25

You've got a R10 error during boot : Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

You should have forgot to bind your server to the environment variable named PORT. You must have the following line from ReactGo boilerplate somewhere : app.set('port', (process.env.PORT || 3000)); or more straightforward : app.listen(process.env.PORT || 3000);

OR

The build process took more than 60s to finish which cause your dyno to terminate before your app is builded. You need to use a dedicated CI tool like CircleCI (which provide a connector to Heroku) to build your application, then launch it on heroku.

The R14 is not a critical error in Heroku but will degrade your performance. If you use Heroku as a continuous integration plateform (as I seen in your logs) this could easly happen during build time.

Sign up to request clarification or add additional context in comments.

2 Comments

I didn't change anything in that part of the boilerplate, the line "app.set('port', (process.env.PORT || 3000));" still exists and so does "app.listen(app.get('port'));".
Ok so I've added an other potentially pitfall that will cause your application to crash before launch
1

You are getting "Error R14 (Memory quota exceeded)". Check R14 - Memory Quota Exceeded to see some possible tips. Perhaps you have packed in too much functionality into a single dyno? What does your Procfile look like, and what dyno types are you using?

3 Comments

All that is in my Procfile is "web: npm start" and I'm using the free dyno. I've tested deploying the boilerplate I'm using to heroku and it works, but not that I've combined an existing app of mine with this boilerplate it crashes heroku. But running my app (combined with the boilerplate) on heroku works so...? Shouldn't it work when I deploy?
It sounds like your app combined with the boilerplate might require too much memory for a single free dyno instance to handle smoothly. You probably need to take a look at what is using up so much memory.
Somehow i doubt that, i tried deploying with all the child components commented out and nothing but the outermost container being rendered and this still happens. Do you know any way to tell what is usong up memory in a node app?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.