Heroku Go app crashing - heroku

Following this tutorial, everything works locally. After I deploy my app to Heroku and visit the app on the browser I get a 503 Error and the message:
Application Error
An error occurred in the application and your page could not be served. Please try again in a few moments.
If you are the application owner, check your logs for details.
The logs say:
2015-09-08T16:31:53.976824+00:00 heroku[web.1]: State changed from crashed to starting
2015-09-08T16:31:56.174376+00:00 heroku[web.1]: Starting process with command `mywebsite`
2015-09-08T16:31:59.312461+00:00 app[web.1]: Listening on port: 39461
2015-09-08T16:32:56.471550+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2015-09-08T16:32:56.471550+00:00 heroku[web.1]: Stopping process with SIGKILL
2015-09-08T16:32:57.390752+00:00 heroku[web.1]: Process exited with status 137
2015-09-08T16:32:57.404208+00:00 heroku[web.1]: State changed from starting to crashed
2015-09-08T16:32:57.645135+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=boiling-eyrie-6897.herokuapp.com request_id=ec26... fwd="xx.xxx.xxx.xxx" dyno= connect= service= status=503 bytes=
2015-09-08T16:32:58.233774+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=boiling-eyrie-6897.herokuapp.com request_id=ef40...fwd="xx.xxx.xxx.xxx" dyno= connect= service= status=503 bytes=
I understand what the errors are, but how can such a tiny tutorial app be causing a boot timeout (R10)?
How can I debug this better and fix the app so it runs?

When you deploy an app through heroku, it does not allow you to specify the port number.
In other words, you can not specify your web service's port number as 8000 or something else, heroku decides the port number in runtime.
so, you can not use the following code:
log.Fatal(http.ListenAndServe(":8000", router))
What you can do is, getting the runtime port of heroku.
In short, just use the following code:
log.Fatal(http.ListenAndServe(":" + os.Getenv("PORT"), router))

Your app needs to listen to all network connections. If it only listens on localhost, heroku's process watcher will not be able to detect that you bound the port, nor send requests to your app.
That means instead of:
http.ListenAndServe("127.0.0.1:"+port, nil)
You need to call:
http.ListenAndServe(":"+port, nil)
See also the heroku getting started with Go app: https://github.com/heroku/go-getting-started/blob/master/cmd/go-getting-started/main.go#L27

Related

how to solve Heroku Deployment Request timeout error?

I was trying to deploy my dashboard on heroku but after I finished I got Request timeout error
I got an Application error and search a lot but still have the same problem of time out and quota memory exceeded
Here is the error from the activity log:
2022-05-02T19:12:39.725777+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=ukraineinvasion.herokuapp.com request_id=fc485f9
6-0c39-416e-914a-93a3c9e1b6e8 fwd="41.46.189.30" dyno=web.1 connect=0ms service=30004ms status=503 bytes=0 protocol=https
2022-05-02T19:12:40.714784+00:00 app[web.1]: Dash is running on http://127.0.0.1:59351/

Why Heroku + voila ipynb app fail to deploy with `failed to bind to $PORT within 60 seconds of launch`

I followed the different pages to deploy a voila ipynb app on heroku:
https://pythonforundergradengineers.com/deploy-jupyter-notebook-voila-heroku.html
https://medium.com/analytics-vidhya/deploying-jupyter-notebook-as-a-web-app-with-heroku-d157b68bcccc
https://github.com/voila-dashboards/voila-heroku
Unfoprtunately, it seems that there is a persisting bug this last month (saw here for instance https://forums.fast.ai/t/heroku-app-wont-deploy/92875/4)
You can find the github repo I am trying to deploy here:
https://github.com/vpicouet/fireball2-etc
The app is base on this Procfile
web: voila --port=$PORT --no-browser --enable_nbextensions=True notebooks/ETC.ipynb
Unfortunately I get this error
2022-03-27T15:17:49.880973+00:00 app[web.1]: [Voila] Using /tmp to store connection files
2022-03-27T15:17:49.881302+00:00 app[web.1]: [Voila] Storing connection files in /tmp/voila_yih2j7ic.
2022-03-27T15:17:49.881356+00:00 app[web.1]: [Voila] Serving static files from /app/.heroku/python/lib/python3.8/site-packages/voila/static.
2022-03-27T15:17:49.890735+00:00 app[web.1]: [Voila] Voilà is running at:
2022-03-27T15:17:49.890737+00:00 app[web.1]: http://localhost:7758/
2022-03-27T15:17:58.000000+00:00 app[api]: Build succeeded
2022-03-27T15:18:48.015586+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2022-03-27T15:18:48.055996+00:00 heroku[web.1]: Stopping process with SIGKILL
2022-03-27T15:18:48.227953+00:00 heroku[web.1]: Process exited with status 137
2022-03-27T15:18:48.274554+00:00 heroku[web.1]: State changed from starting to crashed
2022-03-27T15:24:44.773897+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=fireball2-etc-2022.herokuapp.com request_id=0b0c1707-d6ae-449a-9059-f2d1d3f8c652 fwd="74.105.154.225" dyno= connect= service= status=503 bytes= protocol=https
2022-03-27T15:39:30.626492+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=fireball2-etc-2022.herokuapp.com request_id=af5c3e4a-019f-47c3-a047-e5115ebd5fc7 fwd="74.105.154.225" dyno= connect= service= status=503 bytes= protocol=https
Do you know fow to solve this?
Thanks a lot!
I already tried some ideas on the web:
change
web: voila --port=$PORT --no-browser --enable_nbextensions=True notebooks/ETC.ipynb
by
worker: voila --port=$PORT --no-browser --enable_nbextensions=True notebooks/ETC.ipynb
The answer can be found here: issue 1047
From 0.3.0, Voila will not listen on all interfaces by default (#926) for security reasons. In the case of Heroku, you need to add --Voila.ip=0.0.0.0 to your command in the Procfile to make it work.
See also: https://github.com/voila-dashboards/voila-heroku

React Application on Heroku

Have a working React App that can run locally using the command:
npm start
However, after deploying on Heroku, i receive an application error message.
The application URL is:
https://earth-weather.herokuapp.com/
The Application Log is as follows:
2021-05-12T08:05:27.430345+00:00 app[web.1]: [34mℹ[39m [90m「wds」[39m: webpack output is served from
2021-05-12T08:05:27.430467+00:00 app[web.1]: [34mℹ[39m [90m「wds」[39m: Content not from webpack is served from /app/public
2021-05-12T08:05:27.430577+00:00 app[web.1]: [34mℹ[39m [90m「wds」[39m: 404s will fallback to /
2021-05-12T08:05:27.430864+00:00 app[web.1]: Starting the development server...
2021-05-12T08:05:27.430866+00:00 app[web.1]:
2021-05-12T08:05:27.554932+00:00 heroku[web.1]: Process exited with status 0
2021-05-12T08:05:27.631647+00:00 heroku[web.1]: State changed from starting to crashed
2021-05-12T08:05:28.728857+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=earth-weather.herokuapp.com request_id=f067160f-79fc-4336-8488-ded7e7eb5ddb fwd="183.90.36.67" dyno= connect= service= status=503 bytes= protocol=https
2021-05-12T08:05:30.511115+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=earth-weather.herokuapp.com request_id=059ee61d-fe00-4a69-9966-61506da73911 fwd="183.90.36.67" dyno= connect= service= status=503 bytes= protocol=https
2021-05-12T08:05:31.219414+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=earth-weather.herokuapp.com request_id=0f53eee2-39a0-4311-b8a3-62cb9ffcde3c fwd="35.185.241.102" dyno= connect= service= status=503 bytes= protocol=http
The forked (public) repository is on GitHub.
Grateful for any assistance that can be rendered. - Benjamin
According to your application logs the line Starting the development server, indicates that the application is running on development mode which shouldn't happen as it is a production environment.
The reason,
According to https://devcenter.heroku.com/changelog-items/370
A Procfile is no longer required to run a Node.js app on Heroku. If no Procfile is present in the root directory of your app during the build process, we will check for a scripts.start entry in your package.json file. If such an entry is present, a default Procfile is generated automatically
$ cat Procfile
web: npm start
In your repository, since you have not specified a Procfile. Heroku automatically generates a Procfile that runs your app on development.
Currently, your react-app is treated as a regular node.js application as the node.js buildpack is used which is automatically inferred due to the presence of package.json in the root.
To fix this, you need to use the create-react-app-buildpack on Heroku.
Refer: https://elements.heroku.com/buildpacks/nhutphuongit/create-react-app-buildpack

Running Jersey on Heroku - App Error

I am trying to run a Jersey Server on heroku.
This works fine locally. and I have tested it. [1].
When I run it on heroku I bind to the port given by the PORT environment variable. I tried with localhost, 127.0.0.1 and 0.0.0.0. But when I try to access the application by heroku given url I get an application error. It prints [3].
Can anyone help me on the please?
[1] INFO: Jersey app started with WADL available at http://127.0.0.1:8080/HelloWorldExample.svc/application.wadl
[2] INFO: Jersey app started with WADL available at http://0.0.0.0:40243/HelloWorldExample.svc/application.wadl
[3] 2018-02-15T08:04:20.300885+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/HelloWorldExample.svc/application.wadl" host=absiodata.herokuapp.com request_id=abbf8aa1-bd10-4dff-b36e-eeba2fb30528 fwd="81.246.22.26" dyno= connect= service= status=503 bytes= protocol=http

Dashing on Heroku giving "config.ru" error

So, I am just trying to get a simple Heroku server running Dashing up. So far, I have the dashing and gemlock committed to heroku. Whenever I open the site, I get an error. My logs give me this:
2015-03-14T04:05:37.617789+00:00 heroku[api]: Deploy 2447a74 by #gmail.com
2015-03-14T04:05:37.617789+00:00 heroku[api]: Release v8 created by #gmail.com
2015-03-14T04:05:38.099916+00:00 heroku[web.1]: State changed from crashed to starting
2015-03-14T04:05:41.184158+00:00 heroku[web.1]: Starting process with command bundle exec thin start -R config.ru -e pr
oduction -p 12627
2015-03-14T04:05:43.367997+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/lib/rack/adapter/loader.rb:32
:in read': No such file or directory - config.ru (Errno::ENOENT)
2015-03-14T04:05:43.368046+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/lib/rack/adapter/load
er.rb:32:inload'
2015-03-14T04:05:43.368055+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/lib/thin/runner.rb:20
0:in run_command'
2015-03-14T04:05:43.368051+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/lib/thin/controllers/
controller.rb:182:inload_rackup_config'
2015-03-14T04:05:43.368053+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/lib/thin/controllers/
controller.rb:72:in start'
2015-03-14T04:05:43.368064+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/bin/thin:6:in'
2015-03-14T04:05:43.368066+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bin/thin:23:in load'
2015-03-14T04:05:43.368062+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/thin-1.6.3/lib/thin/runner.rb:15
6:inrun!'
2015-03-14T04:05:43.368069+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bin/thin:23:in `'
2015-03-14T04:05:44.164461+00:00 heroku[web.1]: State changed from starting to crashed
2015-03-14T04:05:44.157004+00:00 heroku[web.1]: Process exited with status 1
2015-03-14T04:06:01.687293+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=pacific-d
awn-3700.herokuapp.com request_id=902320e9-1789-4099-94b2-8b4431d59495 fwd="66.190.95.133" dyno= connect= service= statu
s=503 bytes=
2015-03-14T04:06:02.015965+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" hos
t=pacific-dawn-3700.herokuapp.com request_id=6563d675-9732-4a21-84f4-c486fb6d792e fwd="66.190.95.133" dyno= connect= ser
vice= status=503 bytes=
A config.ru file was never created...I'm new to Ruby and Dashing and Heroku. I've even tried creating a blank config.ru, but even more errors occur...
Found the config file in anothjer directory somehow. Popped it in, it works!

Resources