I've made a new Rails 4 beta app and deployed it to Heroku (using Ruby 2.0.0, and Unicorn via a Procfile).
It runs fine locally with foreman start
, but when I visit the homepage of the deployed app, I just get the standard Heroku 500 error:
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
However, in the logs, there are no errors. I've no idea what is causing the 500.
Here is the output from my last git push heroku master
:
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 656 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Using rake (10.0.4)
Using i18n (0.6.4)
Using minitest (4.7.3)
Using multi_json (1.7.2)
Using atomic (1.1.8)
Using thread_safe (0.1.0)
Using tzinfo (0.3.37)
Using activesupport (4.0.0.beta1)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0.beta1)
Using mime-types (1.23)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.5.3)
Using actionmailer (4.0.0.beta1)
Using activemodel (4.0.0.beta1)
Using activerecord-deprecated_finders (0.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0.beta1)
Using coffee-script-source (1.6.2)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using json (1.7.7)
Using rdoc (3.12.2)
Using thor (0.18.1)
Using railties (4.0.0.beta1)
Using coffee-rails (4.0.0)
Using hike (1.2.2)
Using jbuilder (1.0.2)
Using jquery-rails (2.2.1)
Using kgio (2.8.0)
Using mysql2 (0.3.11)
Using bundler (1.3.2)
Using tilt (1.3.7)
Using sprockets (2.9.3)
Using sprockets-rails (2.0.0.rc4)
Using rails (4.0.0.beta1)
Using raindrops (0.11.0)
Using sass (3.2.8)
Using sass-rails (4.0.0.rc1)
Using turbolinks (1.1.1)
Using uglifier (2.0.1)
Using unicorn (4.6.2)
Your bundle is complete! It was installed into ./vendor/bundle
Cleaning up the bundler cache.
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
I, [2013-04-23T22:28:44.559735 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/rails-d8fb6a2617998f32edf5edb354fc5326.png
I, [2013-04-23T22:28:49.911890 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-d4a508061cd56ce9e544945495285e0c.js
I, [2013-04-23T22:28:50.120141 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-a3b89b66a8471f3e75abb239e3b35c7d.css
Asset precompilation completed (8.30s)
-----> Rails plugin injection
-----> Discovering process types
Procfile declares types -> web
Default types for Ruby/Rails -> console, rake, worker
-----> Compiled slug size: 35.0MB
-----> Launching... done, v21
http://blofs.herokuapp.com deployed to Heroku
To [email protected]:blofs.git
32e51a2..37d989c master -> master
And here are the logs from that push:
2013-04-23T22:28:06.650049+00:00 heroku[slugc]: Slug compilation started
2013-04-23T22:29:11.194613+00:00 heroku[api]: Release v21 created by [email protected]
2013-04-23T22:29:11.365908+00:00 heroku[api]: Deploy 37d989c by [email protected]
2013-04-23T22:29:11.441066+00:00 heroku[web.1]: State changed from up to starting
2013-04-23T22:29:11.932952+00:00 heroku[slugc]: Slug compilation finished
2013-04-23T22:29:12.858139+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2013-04-23T22:29:13.194707+00:00 app[web.1]: I, [2013-04-23T22:29:13.194495 #2] INFO -- : reaped #<Process::Status: pid 5 exit 0> worker=0
2013-04-23T22:29:13.194902+00:00 app[web.1]: I, [2013-04-23T22:29:13.194747 #2] INFO -- : master complete
2013-04-23T22:29:14.312014+00:00 heroku[web.1]: Process exited with status 0
2013-04-23T22:29:14.338943+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 25281 -E $RACK_ENV`
2013-04-23T22:29:15.717687+00:00 app[web.1]: I, [2013-04-23T22:29:15.717387 #2] INFO -- : listening on addr=0.0.0.0:25281 fd=7
2013-04-23T22:29:15.717916+00:00 app[web.1]: I, [2013-04-23T22:29:15.717861 #2] INFO -- : worker=0 spawning...
2013-04-23T22:29:15.721526+00:00 app[web.1]: I, [2013-04-23T22:29:15.721385 #2] INFO -- : master process ready
2013-04-23T22:29:15.723623+00:00 app[web.1]: I, [2013-04-23T22:29:15.723389 #5] INFO -- : worker=0 spawned pid=5
2013-04-23T22:29:15.723805+00:00 app[web.1]: I, [2013-04-23T22:29:15.723750 #5] INFO -- : Refreshing Gem list
2013-04-23T22:29:16.305653+00:00 heroku[web.1]: State changed from starting to up
2013-04-23T22:29:16.891063+00:00 app[web.1]: I, [2013-04-23T22:29:16.890882 #5] INFO -- : worker=0 ready
After that, I tried to load the homepage in my browser, and these are the only two extra lines that appeared in the logs:
2013-04-23T22:29:26.685651+00:00 heroku[router]: at=info method=GET path=/ host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=2ms service=156ms status=500 bytes=706
2013-04-23T22:29:26.973073+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=1ms service=5ms status=200 bytes=0
Does anyone have any idea what the problem could be?
Other things that might be relevant:
DATABASE_URL
environment variable from the previous value (which was still the postgres URL even after I removed the postgres addon) to the same value as the CLEARDB_DATABASE_URL
var (the mysql one). This didn't seem to make any difference.ruby '2.0.0'
to my Gemfile, and added mysql2
and unicorn
gems. And I've used the config/unicorn.rb
suggested at https://devcenter.heroku.com/articles/rails-unicorn
web: bundle exec unicorn -p $PORT -E $RACK_ENV
foreman start
.rails new
.You can view logs with the Heroku CLI, the dashboard, your logging add-on, or in your log drain. You can't view logs for apps in Shield spaces with Private Space Logging enabled. Retrieve logs from your log drain instead.
"Application Error" or similar is always caused by your own application code. Routing errors will normally only surface themselves within the logs of your application. In most cases, you will be able to see the cause of the error there. To learn more about logging, please see our Logging article on DevCenter.
You need to add gem 'rails_12factor'
to your Gemfile. It's a temporary fix from Heroku to make Rails 4+ work with their service.
See Getting Started with Rails 4.x on Heroku or Getting Started with Rails 5.x on Heroku.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With