Running Jersey on Heroku - App Error - heroku

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

Related

"at=error code=H10 desc="App crashed" error on heroku, how to fix?

Deployed on heroku with Intellij Spring boot using gradle. However, when I try to connect with the distributed url, the following error message appears.
at=error code=H10 desc="App crashed" method=GET path="/" host=[my_url] request_id=[...id] fwd="xxx.xx.xxx.xxx" dyno= correct= service= status=503 bytes= protocol=https
As a result of running heroku logs --dyno router in the directory where the source file is located, only an error was output. How can I solve this?
[EDIT]
The error message is:

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

Discord.py bot not running on Heroku

I have a simple discord bot made using python and I have deployed it on Heroku. My bot is running perfectly fine locally, but it never comes online. When I open my app, there is an application error.
I used the command: heroku logs --tail --app my-bot and this is the result I get:
2021-04-29T19:39:35.050215+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=telepathy-bot.herokuapp.com request_id=b5acbe5f-ba6f-40d3-a08c-915850f2d27f fwd="103.242.190.234" dyno= connect= service= status=503 bytes= protocol=https
2021-04-29T19:39:35.438642+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=telepathy-bot.herokuapp.com request_id=e5df6b77-b518-45a8-bbae-9e3f0d15126a fwd="103.242.190.234" dyno= connect= service= status=503 bytes= protocol=https
I tried looking at many things. I ran the heroku ps:scale worker=1 and also tried heroku ps:scale web=1 but I have no luck. What should I do?
My Profile is as follows:
heroku ps:scale web=1
heroku ps:scale worker=1
worker: python launcher.py
Please don't use Heroku, use dynox hosting https://client.dynox.us/

Heroku docker spring boot image error 503 H14

I few days ago I was trying to deploy a docker image of a spring boot app into heroku.
I have the following docker file:
FROM openjdk:8-jdk-alpine
LABEL maintainer="gabigarciagar#gmail.com"
VOLUME /tmp
COPY ./target/*.jar PetApp_Auth.jar
CMD [ "java","-Xmx300m","-Xss512k","-XX:CICompilerCount=2","-Dfile.encoding=UTF-8","-Dspring.profiles.active=heroku","-Djava.security.egd=file:/dev/./urandom","-jar","/PetApp_Auth.jar" ]
also in my application.properties for a heroku profile i have:
spring.profiles.active=heroku
server.port=${PORT}
server.servlet.context-path=/
then i execute the following commands and everithig looks nice:
$ heroku container:push petapp-authserver -a petapp-authserver
Your image has been successfully pushed. You can now release it with the 'container:release' command.
$ heroku container:release petapp-authserver -a petapp-authserver
Releasing images petapp-authserver to petapp-authserver... done
Also the heroku log show that the app is up and also heroku ps
the database connection is perfect also
$ heroku ps -a petapp-authserver
=== petapp-authserver (Free): java -Xmx300m -Xss512k -XX:CICompilerCount\=2 -Dfile.encoding\=UTF-8 -Dspring.profiles.active\=heroku -Djava.security.egd\=file:/dev/./urandom -jar /PetApp_Auth.jar (1)
petapp-authserver.1: up 2020/03/06 21:09:51 +0100 (~ 1m ago)
Then when i try to see swagger-ui o /actuator/health i get the following:
2020-03-06T20:11:58.149484+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=petapp-authserver.herokuapp.com request_id=e88c2499-b1de-4284-a649-1d8df19ae6c0 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=https
2020-03-06T20:11:59.443315+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=petapp-authserver.herokuapp.com request_id=9fa4951a-365c-4b9b-bf63-94f8d6792249 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=https
2020-03-06T20:12:08.185495+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/actuator/health" host=petapp-authserver.herokuapp.com request_id=c4c3382b-43b7-494c-9259-630ce24eb8a4 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=https
2020-03-06T20:12:08.697245+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=petapp-authserver.herokuapp.com request_id=b044b6fe-ba8d-4b3d-8c7c-8e477ea7b609 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=https
2020-03-06T20:12:12.943276+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/actuator/health" host=petapp-authserver.herokuapp.com request_id=6ac05b16-148d-4849-a857-c3d6bed9fe01 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=http
2020-03-06T20:12:13.637589+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=petapp-authserver.herokuapp.com request_id=2c01dbaa-18c5-46f8-8f43-f91ee372a5eb fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=http
2020-03-06T20:12:23.492570+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/swagger-ui.html" host=petapp-authserver.herokuapp.com request_id=2850eb70-1bd5-4737-9505-d59184e95946 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=http
2020-03-06T20:12:23.878827+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=petapp-authserver.herokuapp.com request_id=f83acdef-840a-4e2e-824c-183cfdc50273 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=http
as heroku web said https://devcenter.heroku.com/articles/error-codes#h14-no-web-dynos-running
i execute:
heroku ps:scale petapp-authserver=1 -a petapp-authserver
Scaling dynos... done, now running petapp-authserver at 1:Free
And same error
What I am doing wrong??
I was able to deploy the jar directly and it works
heroku deploy:jar PetApp_AuthServer-V-0.0.0.jar -a petapp-authserver
Uploading PetApp_AuthServer-V-0.0.0.jar
-----> Packaging application...
- app: petapp-authserver
- including: PetApp_AuthServer-V-0.0.0.jar
-----> Creating build...
- file: slug.tgz
- size: 46MB
-----> Uploading build...
- success
-----> Deploying...
remote:
remote: -----> heroku-deploy app detected
remote: -----> Installing JDK 1.8... done
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 96.8M
remote: -----> Launching...
remote: Released v12
remote: https://petapp-authserver.herokuapp.com/ deployed to Heroku
remote:
-----> Done
2020-03-13T19:25:13.683982+00:00 heroku[router]: at=info method=POST path="/auth/login" host=petapp-authserver.herokuapp.com request_id=ef9a29b6-c10c-4b82-8088-711d448c3a32 fwd="88.17.74.86" dyno=web.1 connect=1ms service=362ms status=200 bytes=878 protocol=https
2020-03-13T19:25:13.780163+00:00 heroku[router]: at=info method=GET path="/webjars/springfox-swagger-ui/fonts/titillium-web-v6-latin-600.woff2" host=petapp-authserver.herokuapp.com request_id=f2f6334d-2663-49b0-bd28-b5d287e79b68 fwd="88.17.74.86" dyno=web.1 connect=1ms service=13ms status=200 bytes=12634 protocol=https
Why it perfecty works with jar deploy and not with docker??
I have also tried:
Gabi#MSI MINGW64 /d/Proyectos/PetApp/Back/PetApp_AuthServer (develop)
$ heroku container:release web petapp-authserver -a petapp-authserver
! Expected response to be successful, got 404
Gabi#MSI MINGW64 /d/Proyectos/PetApp/Back/PetApp_AuthServer (develop)
$ heroku container:release web petapp-authserver -a petapp-authserver
! Expected response to be successful, got 404
Gabi#MSI MINGW64 /d/Proyectos/PetApp/Back/PetApp_AuthServer (develop)
$ heroku container:release petapp-authserver -a petapp-authserver
Releasing images petapp-authserver to petapp-authserver... done
Thanks in advance
Finally I solved the question.
The point is that the image in heroku must be named same as the process type, in this case web!
so there are two options. Build and pushing the image by using:
heroku container:push web -a petapp-authserver
or create the image locally and the tag it as registry.heroku.com/petapp-authserver/web
docker tag petapp-authserver registry.heroku.com/petapp-authserver/web
docker push registry.heroku.com/petapp-authserver/web
The push refers to repository [registry.heroku.com/petapp-authserver/web]
eb03575d1edf: Preparing
ceaf9e1ebef5: Preparing
9b9b7f3d56a0: Preparing
f1b5933fe4b5: Preparing
eb03575d1edf: Layer already exists
9b9b7f3d56a0: Layer already exists
f1b5933fe4b5: Layer already exists
ceaf9e1ebef5: Layer already exists
latest: digest: sha256:4c0ae2bba092c07bbd89394216b0bf78f458ba3583e63c8d15e01f6b07d6933e size: 1159
heroku container:release web -a petapp-authserver
Releasing images web to petapp-authserver... done
Now my containers are perfectly running in docker!!
Thank you all
In your Procfile or your heroku.yml you have not specified a web worker.
2020-03-06T20:12:23.878827+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=petapp-authserver.herokuapp.com request_id=f83acdef-840a-4e2e-824c-183cfdc50273 fwd="79.147.107.220" dyno= connect= service= status=503 bytes= protocol=http
For containers you should use heroku.yml. Procfile might even be ignored.
https://devcenter.heroku.com/articles/build-docker-images-heroku-yml
Doing this will get rid of your current H14 errors.
Key point is the process type.
For example, when you deploy the jar and runs it, you can see at your logs:
remote: -----> Discovering process types
remote: Procfile declares types -> web
But you don't see it when using release because you haven't specified a process type.
Can you try to run the release command like this and see if it works?
heroku container:release web petapp-authserver -a petapp-authserver
web is the process type!

Heroku Go app crashing

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

Resources