web-dev-qa-db-fra.com

Erreur de déploiement Heroku H10 (application bloquée)

J'ai une application RoR qui fonctionne sur mon ordinateur local, mais lorsque je l'envoie à heroku, elle se bloque. 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=

Modifier:

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 at-il déjà eu cela auparavant et sait ce qui pourrait causer le problème? Je ne trouve pas de solution.

Merci.

112
bskool

J'ai rencontré la même erreur ci-dessus, l'application était en panne sur heroku (ça fonctionnait bien dans dev) mais les journaux d'erreur sur heroku ne révélaient aucun indice. J'ai lu d'autres réponses sur cette page et j'ai éclaté en sueur après avoir vu «reconstruire l'application». J'ai pensé que je pourrais peut-être entrer dans la console heroku et regarder autour de moi. Je l'ai fait et même la console s'est écrasée, mais cette fois, elle m'a dit pourquoi. C’était 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 t'aides.

$ heroku run Rails console
241
ntimba20

J'avais le même problème. Les journaux ne me donnaient pas non plus d’indices… .. Alors j’ai réduit et redimensionné les dynos. Cela a résolu le problème pour moi:

heroku ps:scale web=0

Attendu quelques secondes ...

heroku ps:scale web=1
35
Hunter
$heroku run Rails console 

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

18
EricSchulz
$ heroku restart

m'a aidé à relancer mon dyno. Je suis nouveau à Heroku mais heureux de savoir maintenant.

15
Kyle Kwon

cela m'est arrivé quand 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');
});
11
newshorts

J'ai eu le même problème ce soir. Pas une erreur très utile alors j'ai essayé de courir dans la console

heroku run Rails c

cela a échoué et m'a donné une erreur beaucoup plus utile. J'avais négligé de supprimer un appel de méthode en production. Une fois que j'ai résolu le problème, l'application fonctionnait bien.

10
Gregory

J'ai résolu ce problème en poussant Git:

git add .
git commit -am "some text"
git Push

puis Poussez à Heroku:

git Push heroku

puis rake db: migrer sur Heroku:

heroku run rake db:migrate
5
Frank C Jones

J'ai réussi à ne pas inclure mon fichier .gitignore -> qui casse heroku. #doh

Voici un fichier .gitignore de travail

/.bundle
/vendor/bundle/
/vendor/Ruby/


db/*.sqlite3
/db/*.sqlite3-journal
/log/*
/tmp/*


**.war
*.rbc
*.sassc
.redcar/
.sass-cache
/config/config.yml
/config/database.yml
/coverage.data
/coverage/
/db/*.javadb/
/db/*.sqlite3
/doc/api/
/doc/app/
/doc/features.html
/doc/specs.html
/public/cache
/public/stylesheets/compiled
/public/system/*
/spec/tmp/*
/cache
/capybara*
/capybara-*.html
/gems
/specifications
rerun.txt
pickle-email-*.html
.zeus.sock

**.orig

.DS_Store

/nbproject/

.idea

/*.tmproj

**.swp

.env
.powenv

Pour créer un fichier .gitignore, dans Terminal, accédez à votre répertoire d'applications et utilisez la commande suivante.

touch .gitignore

Ensuite, vous pouvez l'ouvrir dans votre éditeur de texte et y insérer le code ci-dessus.

2
Joe Mellin

J'avais eu la même erreur de crash de l'application H10 à Heroku. J'ai cliqué sur 'redémarrer tous les dynos' dans l'interface de heroku et le problème a été résolu.

2
tomb

Dans mon cas, j'utilisais des variables ENV dans mon application, mais cela n'était pas défini dans la configuration de heroku. 

la console heroku a donné l'erreur appropriée:

heroku console
`validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)

Puis définissez la configuration ENV

heroku config:set AWS_ACCESS_KEY_ID='key'

Redémarrez le Heroku 

heroku restart

Ça marche!!

2
devudilip

J'ai eu la même erreur ci-dessus que "l'application s'est écrasée" et les journaux de l'application heroku ne montre pas beaucoup d'informations liées aux raisons de msg d'erreur. Ensuite, j'ai redémarré le dynos dans heroku, puis une erreur s'est produite indiquant que des accolades étaient ajoutées dans l'un des fichiers index.js de ma configuration. Le problème a été résolu une fois qu'il a été supprimé et redéployé l'application sur heroku.

J'espère que cela sera utile à quelqu'un confronté au même problème.

1
Praveen

Le problème auquel je faisais face était dû au fait de ne pas avoir de base de données. Pour résoudre le problème, j'ai d'abord exporté ma base de données locale:

$ heroku addons:add heroku-postgresql:dev 
$ heroku addons:add pgbackups
$ PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump 

Puis importé dans Heroku:

$ heroku pgbackups:restore DATABASE 'http://site.tld/mydb.dump'

Les variables à remplacer dans ces exemples sont: mypassword, myuser, mydb & http://site.tld/mydb.dump. Notez que j'ai dû télécharger le dump sur un serveur temporaire.

Résoudre tous mes problèmes, j’ai rédigé un guide rapide sur la manière de déployer Enki sur Heroku, que vous pouvez trouver ici .

1
bskool

Voyez si vous obtenez 

bash: bin/Rails: No such file or directory

dans les journaux lors de l'exécution de la commande (heroku logs -t) si oui, veuillez exécuter

bundle exec rake Rails:update

Ne pas écraser vos fichiers, à la fin cette commande créera

  create  bin
  create  bin/bundle
  create  bin/Rails
  create  bin/rake

Poussez ces fichiers sur heroku et vous avez terminé.

1
Saqib R.

Après avoir parcouru toute la liste des réponses, je suis tombé sur ce site: https://status.heroku.com/ qui détaille le statut/les incidents en cours avec Heroku. Il est toujours prudent de vérifier les incidents avant de se cogner la tête contre le mur. Pour moi, c’est le rapport d’incident ci-joint publié sur le lien susmentionné qui était à l’origine de l’erreur.

 SERVER INCIDENT UPDATE

1
PallavBakshi

J'ai eu le même problème, j'ai fait ce qui suit 

heroku run Rails c

Il a identifié une erreur de syntaxe et une virgule manquante dans les paramètres autorisés du contrôleur. Comme mentionné ci-dessus, les journaux Heroku ne fournissaient pas suffisamment d'informations pour résoudre le problème. 

Je n'ai pas vu l'application planter un message sur Heroku auparavant. 

1
Ben Strachan

Soyez très prudent de copier et coller du code. Parfois, lorsque vous ajoutez un bloc dans un fichier, celui-ci est mal formaté et génère une erreur. 

J'ai déjà eu ce problème et j'ai cette erreur: tIDENTIFIER inattendu, en attente de keyword_end

0
Matt Perejda

J'ai eu H10 avec Heroku et Node en raison du nom incorrect du fichier de code principal. Éditer package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

  "scripts": {
    "start": "node correct_file_name.js"
  }
}

Ou renommer le fichier.

0
ariel

J'ai eu le même problème. pour moi c’était une erreur dans les filtres before_action (parce que la base de données est vide). 

0
sphinx96

J'ai eu le même problème (même erreur sur heroku, en travaillant sur la machine locale) et j'ai essayé toutes les solutions énumérées ici, y compris heroku run Rails console Qui s'exécutait sans message d'erreur. J'ai essayé heroku run rake db:migrate et heroku run rake db:migrate:reset plusieurs fois. Rien de tout cela n'a résolu le problème. En parcourant certains fichiers utilisés en production mais pas dans un environnement de développement, j'ai constaté que certains espaces dans le fichier puma.rb en étaient la cause. J'espère que cela aidera quelqu'un qui a le même problème . Changer cela a fonctionné

  ActiveRecord::Base.establish_connection
  End

à

  ActiveRecord::Base.establish_connection
end
0
Rahul Madhavan

J'ai rencontré le même problème aujourd'hui. J'ai déjà utilisé heroku run rake db:migrate, mais j'ai déjà migré le modèle et l'application ne plante pas.

0
Tu H.

Si vous utilisez Node, vous pouvez essayer d'exécuter la commande serve directement dans la console. Dans mon cas, je lance une application angulaire, alors j'ai essayé avec:

heroku run npm start

Cela m'a montré l'erreur exacte lors du démarrage de l'application.

0
Victor Vargas

J'ai mis à jour mes paramètres depuis App.set ('ip_address', process.env.IP || '127.0.0.1');

à 

app.set ('ip_address', process.env.IP || '0.0.0.0');

que j'ai changé pour l'hébergement Openshift

0
Neville Dabreo

J'ai eu ce problème en essayant d'exécuter Rails dans un sous-répertoire et non dans /. Par exemple, j'avais l'application Angular/Node/Gulp exécutée dans /client et une application Rails exécutée dans /server, mais les deux se trouvaient dans le même référentiel git, ce qui me permettait de suivre les modifications apportées aux deux extrémités. J'ai eu cette erreur en essayant de les déployer à Heroku. Pour ceux qui ont ce problème, voici un buildpack personnalisé qui permettra d’exécuter Rails dans un sous-répertoire.

https://github.com/aarongray/heroku-buildpack-Ruby

0
Aaron Gray

J'ai eu le même problème lorsque j'ai commencé à utiliser Puma à heroku selon leur guide page, ce problème a été résolu lorsque j'ai commenté la ligne de port ci-dessous.

# port        ENV['PORT']     || 3000

Ainsi, la désactivation de la ligne ci-dessus dans le fichier puma.rb du répertoire config a résolu le problème.

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['Rails_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
# port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'production'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-Rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end
0
Ahmed Elkoussy

J'ai rencontré le même problème lors du déploiement sur Heroku (blocage de l'application). Les journaux n’indiquaient pas quel pouvait être le problème. La console Heroku affichait une erreur de syntaxe dans le code d'un crochet supplémentaire. Étonnamment, je n'ai pas eu de problème avec Rails locaux lors de l'exécution de l'application et je l'ai donc raté. Après correction et application de Push to Heroku, l'application a commencé à fonctionner sur Heroku!

0
M Donde

Dans mon cas, la Procfile que j’utilisais cassait tout. Heroku recherche Procfile et applique ses paramètres lors du lancement de l'application. Il est clair que les paramètres de développement que j'ai utilisés n'avaient aucun sens pour le serveur de production. J'ai dû le renommer en Procfile.dev et tout a commencé à fonctionner normalement.

0
The Whiz of Oz