foreman start error (server.rb:33, missing argument...) foreman start error (server.rb:33, missing argument...) ruby-on-rails ruby-on-rails

foreman start error (server.rb:33, missing argument...)


This is not about executing on Heroku - see that the original question about is about executing with Foreman - which is local execution.

You can replicate your error by executing the following:

rails server thin -e

That's effectively what Foreman is running, given your Procfile:

web: bundle exec rails server thin -p $PORT -e $RACK_ENV

So I'm going to guess that you're not passing in an argument to -e. ie. you haven't defined RACK_ENV locally.

What you can do is create a .env file in your local directory, something like

RACK_ENV=development

PORT=3000

Foreman will automatically pick up the local .env file and set the environment appropriately, before creating the process based on your process type declaration.


I had the same problem with rails v3.2 in Ubuntu 10.04.I managed to get thin running by doing the following steps:

  1. Change your Procfile as follows:

    web: bundle exec rails server thin -p $PORT -e development

  2. Add $stdout.sync = true on the top of your config.ru file, to direct server output to your terminal (otherwise you do not get output in your terminal)

Tell me if it works!


I just ran into this same problem. If you change your Procfile to just

web: bundle exec rails server thin -p $PORT

it should work. Note, this uses the default Thin port of 5000 rather than 3000 (which means you'll need to go to http://localhost:5000 to see your app.

Having just

web: bundle exec rails server thin

in your Procfile will use port 3000, but this will cause errors on Heroku.