168 votes

Erreur de déploiement Heroku H10 (App crashed)

J'ai une application RoR qui fonctionne sur mon ordinateur local, mais lorsque je l'envoie à heroku, elle se plante. Le journal des erreurs donne une erreur H10 et dit :

    2012-11-21T15:26:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
    2012-11-21T15:26:48+00:00 heroku[web.1]: State changed from starting to crashed
    2012-11-21T15:26:48+00:00 heroku[web.1]: Process exited with status 1
    2012-11-21T15:26:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:27:00+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=

Edit :

2012-11-22T10:00:58+00:00 app[web.1]: 
2012-11-22T10:00:59+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno=web.1 queue=0 wait=0ms connect=1ms service=26ms status=200 bytes=0

Quelqu'un a-t-il déjà été confronté à ce problème et sait-il ce qui peut en être la cause ? Je ne trouve pas de solution.

Gracias.

371voto

ntimba20 Points 3536

J'ai rencontré la même erreur que ci-dessus, l'application plantait sur heroku (fonctionnant bien dans dev) mais les journaux d'erreurs sur heroku ne révélaient aucun indice. J'ai lu d'autres réponses sur cette page et j'ai eu des sueurs froides après avoir vu "reconstruire l'application". Je me suis dit que je pourrais peut-être entrer dans la console Heroku et jeter un coup d'œil. Je l'ai fait et même la console a planté, mais cette fois, elle m'a dit pourquoi. Il s'agissait d'une variable obscure que j'avais oublié de supprimer lors d'une session de dépannage quelques heures plus tôt. Je ne dis pas que vous rencontrerez le même problème, mais j'ai trouvé plus d'informations lorsque j'ai essayé de passer par la console. J'espère que cela vous aidera.

$ heroku run rails console

51voto

Hunter Points 1607

J'avais le même problème. Les logs ne me donnaient aucun indice non plus. J'ai donc réduit et remonté les dynos. Cela a résolu le problème pour moi :

heroku ps:scale web=0

J'ai attendu quelques secondes...

heroku ps:scale web=1

24voto

EricSchulz Points 251
$heroku run rails console 

C'est la meilleure option car elle vous donnera une erreur dans votre terminal qui sera beaucoup plus détaillée que l'erreur "app crashed" dans vos journaux Heroku.

23voto

Kyle Kwon Points 331
$ heroku restart

m'a aidé à remettre mon banc d'essai en marche. Je suis nouveau sur Heroku mais je suis content de le savoir maintenant.

15voto

newe1344 Points 195

Cela m'est arrivé lorsque j'écoutais sur le mauvais port.

J'ai changé mon listen() en "process.env.PORT" donc :

http.listen((process.env.PORT || 5000), function(){
  console.log('listening on *:5000');
});

au lieu de

http.listen(5000, function(){
  console.log('listening on *:5000');
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X