🚤

HerokuでR10エラーが発生した

2022/03/19に公開

エラー内容

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

https://devcenter.heroku.com/ja/articles/error-codes#r10-boot-timeout

やろうとしていたこと

Node.js(v16)でFastifyを使ってサーバーを立てようとしていた時に発生した。
この記事のコードはFastifyのコードなので、他のライブラリを使っている場合は適宜読み替えてください。

完全には解決しなかった方法

エラー内容でググると、ポートを環境変数の PORT で起動しようというような感じの記事がヒットする。
なので、それに従って、

index.ts
server.listen(process.env.PORT || 8000, (err, address) => {
    if (err) throw err
    server.log.info(`server listening on ${address}`)
})

のようにするも、直らず...

解決した方法

ポートを PORT に合わせるだけではなく、ホストを 0.0.0.0 に指定する必要がある。
なので、

index.ts
server.listen(process.env.PORT || 8000, "0.0.0.0", (err, address) => {
    if (err) throw err
    server.log.info(`server listening on ${address}`)
})

のようにすることで解決できた。

まとめ

R10エラーが出た場合はホストを指定し忘れていないか確認してみるといいかもしれない。

GitHubで編集を提案

Discussion