最初のHerokuデプロイが失敗した `エラーコード= H10`


88

アプリをHerokuにデプロイしました。これはnode.js + express + socket.ioアプリであり、これはpackage.jsonファイルです

{
  "name": "game_test",
  "author": "Ilya",
  "description": "A test app for our board game",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app"
  },
  "dependencies": {
    "express": "3.0.6",
    "jade": "*",
    "socket.io" : "*"
  },
 "engines": {
      "node": "0.8.14"
  }
}

これは私が取得したログです:

heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=

どういう意味ですか?


4
「アプリがクラッシュした」というのは明らかな意味です。アプリがクラッシュしたということです。ログをさらに調べて理由を確認するか、heroku restart再度起動して、再度クラッシュするのを確認してください。
willglynn 2013年

私も同じ問題を抱えています。どのように修正しましたか?
Martin Schaer 2013年

6
この質問に対する回答は1つあり、これまでに6つの賛成票を獲得しています...この質問の正解としてそ​​の回答を選択してください。
ラキブ2014

こんにちは@ilyo!これについての私の答えを承認してもらえますか?それは7歳で、人々を助け続けています:)ありがとう!
MartinSchaer20年

回答:


199

ここで解決策が見つかりました:Heroku + node.jsエラー(Webプロセスは起動から60秒以内に$ PORTにバインドできませんでした)

私の場合、heroku dinamicalyが設定するポートを使用する代わりに、PORTを設定するのが難しいため、アプリがクラッシュしました。 process.env.PORT

app.listen(process.env.PORT || 3000, function(){
  console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});

1
さて、この解決策をありがとう。私はまったく同じ問題を抱えていました、そしてあなたの答えは数時間の研究の後に私の問題を解決しました。
lukyVj 2014

2
2年経っても、この投稿はHerokuがクラッシュしたときに役立ちました。@MartinSchaerに感謝します。
レイバンゴ2015

1
まさにそれは、Java SpringBootに関する私の問題でした。ありがとう
Mohy Eldeen 2017

2
最近、私たちのほとんどはES6を使用しています。したがって、矢印関数を使用してES6でも同じ答えを書くことができます。app.listen(process.env.PORT || 3000、()=> {console.log( "Expressサーバーが%sモードでポート%dをリッスンしています"、this.address()。port、app.settings.env) ;});
Hemadri Dasari 2018

1
@ PraveenKumar-M通常、その行はサーバーのメインファイル(index.js)にあります。appエクスプレスのインスタンスです
MartinSchaer20年

47

アプリで同様の問題が発生しました。DBの移行後に問題が発生しました。多くのオプションを試した後、次のような問題が発生しました。

heroku restart

(Mac用のHerokuツールベルトを使用)


1
以前と同じエラーコードが表示されていましたが、これが突然発生し始めました。「herokurestart」コマンドはこれをクリアしました。
マイク

New Relicを追加した後、同じことが起こりました。再起動すると問題が修正されました
Kris Hollenbeck 2018年

6

私はこの問題を抱えていました、唯一の問題は私のProcfileがこのようなものだったということでした

web : node index.js

そして私はに変更しました

web:node index.js

唯一の問題はスペースでした


5

私の場合、ローカルマシンにnodeとnpmのバージョンの違いがあり、package.jsonバージョンで定義されているため、同じエラーが見つかりました。

"engines": {
  "node": "0.8",
  "npm": "1.2.x"
}

使用して確認するとき

node --version : v0.10.41
npm --version : 1.4.29

package.jsonをに更新すると

 "engines": {
  "node": "0.10.41",
  "npm": "1.4.29"
}

それはうまくいきます:)


5

私の場合process.env.PORT || 3000、httpサーバースクリプトに追加して解決しました。私のherokuログは「H20」エラーと503httpステータスを報告しました。


3

私の場合、Procfileが間違ったファイル(以前に使用したbot.js)を指していました。そのため、ファイルを更新すると、エラーはなくなりました。


3

hapi18を使用すると、「host」フィールドを取り出して、ポートを次のように設定していることがわかります。

port: process.env.PORT || 5000 トリックをしました。


2

データベース接続も確認してください。データベース接続をlocalhostから変更するのを忘れたため、herokuにプッシュされるとアプリがクラッシュしました。


2

私はこれと同じ問題に直面しましたが、上記の答えはどれも役に立ちませんでした。私がしたことは実行されました:

node --version

そしてpackage.jsonで、ノードのバージョンとともにenginesセクションを追加します。

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "6.11.1"
  }
}

2

nodemon私のように、によってノードサーバーをローカルで起動し、それがローカルで機能する場合は、を試してくださいnpm start。Nodemonは私にエラーを言っていませんでしたが、npm startは理解できる方法でそれらの多くを教えてくれたので、ここで別の投稿をフォローすることでそれらを解決できました。それが誰かに役立つことを願っています。


2

古いスレッドですが、PORT定数をprocess.env.PORTに設定することでこの問題を修正します||

奇妙な理由で、最初にEnvを検索したかったのです。


1

私自身の場合、ノードjsアプリにProcfileを追加することを拒否し、「main」:「app.js」が最初に別のjsファイルをmainとして指していたため、このエラーが発生しました。だからこれらの変更を行うと私のためにそれを修正します


1

タイプミスがありました

const PORT = process.env.PORT||'8080';

以前は

const PORT = process.env.port||'8080';


1

私の場合、データベース環境をデプロイ用に設定するのを忘れていました。このコマンドでenvを設定できます(MongoDBサーバーにmLabを使用しています)

heroku config:set MONGO_URI = 'mongodb:// address'


1

私にとってはPackage.jsonでしたが、インストールしたと思っていたのに依存関係がありませんでした。最後に--saveオプションを指定して再インストールし、package.jsonに追加されたことを確認する必要がありました。もう一度押すと機能しました。


1

私の場合、package.jsonファイルのスクリプトセクションに開始コマンドがありませんでした。でpackage.jsonファイルを作成したときnpm init、スクリプトの開始コマンドを作成しませんでした。だから私はに行きましたpackage.jsonファイルに移動し、スクリプトの下に新しいエントリを追加しました。

 "scripts": {
    "start": "node index.js"
  },

保存してHerokuにアップロードすると、機能しました



0

私のポートはconfig.httpPortに解決されるように設定されました80。私はこれを行うことによってそれを修正しました:

const PORT = process.env.PORT || config.httpPort;

app.listen(PORT, ...)

どうもありがとう、昨夜は私に多くの時間を無駄にしました。


0

H10エラーコードは、さまざまな意味を持つ可能性があります。私の場合、1回目は、HerokuがSqlite3と互換性がないことを知らなかったため、2回目は、本番環境だけでなく開発中のGoogleアナリティクスで誤ってアップデートをプッシュしたためです。


0

「アプリがクラッシュしました」およびH10エラーと同じ上記のエラーが発生し、herokuアプリのログにエラーメッセージの理由に関連する多くの情報が表示されません。次に、herokuでdynoを再起動すると、セットアップのindex.jsファイルの1つに中括弧が追加されているというエラーが表示されました。この問題は、アプリを削除してherokuに再デプロイすると、修正されました。


0

古いスレッドですが、私にとって.envは、Herokuコンソールで変数を設定しませんでした。


0

例外をスローするbody-Parserを使用していました

const bodyParser = require('body-Parser')    
//Bodyparser Middleware
app.use(bodyparser.json())

使用する代わりに

    //Bodyparser Middleware
    app.use(express.json())

これで私の問題は解決しました


0

Githubに更新されていない単純なファイルであるこのエラーの解決策をここに登録したいと思います。

フルスタックプロジェクトがあり、ファイルはバックエンドのルートディレクトリとフロントエンドのクライアントの両方で構造化されています(React.jsを使用しています)。すべては、クライアントフォルダーを誤ってGithubにのみプッシュしていて、エラー(index.jsのオブジェクトのインスタンスにコンマがない)があったすべての変更がバックエンド側で更新されなかったという事実に帰着しました。このHerokuはGithubリポジトリからすべての更新をフェッチするため、サーバーにアクセスできず、エラーが解決しませんでした。次に、コミットしてルートディレクトリにプッシュし、プロジェクトのすべての変更を更新するだけで、すべてが再び機能するようになりました。


0

私の場合、Procfileが次の理由でcode = H10およびstatus = 503でした。

web: node build/server.js

そして、私は含ま/ビルド.gitignoreを


0

私は何時間も同じエラーに苦しんでいますが、それを解決することができました。依存関係だけでなく、誤ってmulterとaws-sdkをdevDependenciesとしてインストールしました。したがって、同じエラーが発生した場合は、package.jsonファイルを再確認してください。

また、package.jsonのエンジンのプロパティに関する小さなヒント。

enter code here
//The greater or equal operators will make sure that you use the right node 
//version 
//even if your current node is greater version than npm node

"engines": {
"node": ">= 0.8.14"
},


//insted of
"engines": {
  "node": "0.8.14"
}

0

このエラーが発生したとき、Python Djangoフレームワークをデプロイしていました。これは、web: gunicorn plaindjango.wsgi:application --log-file -代わりにアプリ名を入力するのを忘れたためです。plaindjango

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.