puma / puma

A Ruby/Rack web server built for parallelism

Home Page:https://puma.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Puma 6.0.0 leads to "App crashed" (H10 error) on Heroku

evaneykelen opened this issue · comments

Describe the bug
Upgrading from puma 5.6.5 to 6.0.0 and deploying to Heroku leads to instant, replicable app crash ("H10" in Heroku parlance).

App:

  • Ruby 3.1.2
  • rails (7.0.4)
  • stimulus-rails (1.1.0)
  • turbo-rails (1.3.2)

Heroku log entry:

2022-10-21T11:01:02.219141+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/cable" host=[REDACTED].herokuapp.com request_id=[REDACTED] fwd="[REDACTED]" dyno= connect= service= status=503 bytes= protocol=https

2022-10-21T11:02:42.930352+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=[REDACTED].herokuapp.com request_id=[REDACTED] fwd="[REDACTED]" dyno= connect= service= status=503 bytes= protocol=https

Puma config:

See https://gist.github.com/evaneykelen/2109acfb5dbc16ffba79dded65e26373

To Reproduce
Update to 6.0.0 and deploy to Heroku.

Expected behavior
Not crashing.

rackup DefaultRackup

Configuration constants like DefaultRackup removed

I see I could have prevented this issue by sticking to Heroku's advice by using:

> rackup DefaultRackup if defined?(DefaultRackup)

instead of using

rackup DefaultRackup

in my puma.rb config file.

Thanks @hovancik for the pointer!