While following the Rails 4 Beta version of Michael Hartl’s Ruby on Rails Tutorial, my app fails to start on Heroku, but runs fine locally with
bundle exec rails server. Checking
heroku logs -t reveals the following error:
$ heroku[web.1]: State changed from crashed to starting $ heroku[web.1]: Starting process with command `bin/rails server -p 33847 -e $RAILS_ENV` $ app[web.1]: bash: bin/rails: No such file or directory $ heroku[web.1]: Process exited with status 127 $ heroku[web.1]: State changed from starting to crashed $ heroku[web.1]: Error R99 (Platform error) -> Failed to launch the dyno within 10 seconds $ heroku[web.1]: Stopping process with SIGKILL
heroku run bash and check the
bin directory, I can see that there is not a
~$ ls bin erb gem irb node rdoc ri ruby testrb
What have I done wrong? I followed the tutorial exactly.
I had this problem also since I upgraded to rails 4.0.0
Run this command
You can go here for more info
After struggling with this for a bit, I noticed that my Rails 4 project had a
/bin directory, unlike some older Rails 3 projects I had cloned.
/bin contains 3 files,
rake, but these weren’t making it to Heroku because I had
bin in my global
This is a pretty common ignore rule if you work with Git and other languages (Java, etc.), so to fix this:
- Commit your
git add .and
git commit -m "Add bin back"
- Push your changes to Heroku with
git push heroku master
bundle config --delete bin# Turn off Bundler’s stub generator
rake rails:update:bin# Use the new Rails 4 executables
git add bin or git add bin -f# Add bin/ to source control
git commit -a -m "you commit message"
git push heroku master
I had this issue because the permissions on my
~/bin directory were
644 instead of
rake rails:update:bin locally (on Mac/*nix) and then pushing the changes fixed the problem.
We didn’t have a myapp/bin directory in our rails 4 app, so we created one and then copied in the my app/script/rails file, plus the bundle and rake files from under rvm/ruby/bin and then added these to the repo for git and pushed it up to heroku and all was well.
I can confirm running
rake rails:update:bin works, as said by @Ryan Taylor.
I think I had this problem because I originally created this Rails app on Windows. Running the command above on Linux solved for me.
Also, on changing from Windows to Linux for development, it is a good idea to delete
Gemfile.lock file and run
bundle install to generate it again without Windows specific gems listed there.
I had the very same problem that you did. The issue lied in the fact that the bin folder was never pushed to the heroku repository.
I looked, I looked, and then I looked again, there was no rule in the .gitignore file for the bin/ folder…
Then, after a lot of pain and anguish, I realized that a couple of months before I had created a global .gitignore that would ignore all bin folders of all my repositories (why lord, why??).
I deleted the global .gitignore, and everything worked fine.