I've Ruby 2 + Rails 4 + Mongoid 4
app that works perfectly on Development. But when I push to Heroku, the app crashes. I've tried analyzing Heroku logs, but couldn't solve the problem. I even tried disabling a gems that I thought could be the cause, but it was no use.
A couple of other gems I'm using are android_market_api
, devise
and s3_direct_upload
. Please Help!
2013-12-06T12:31:34+00:00 heroku[slug-compiler]: Slug compilation finished
2013-12-06T12:31:35.094147+00:00 heroku[web.1]: State changed from crashed to starting
2013-12-06T12:31:40.754686+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 3309 -c ./config/unicorn.rb`
2013-12-06T12:31:46.061981+00:00 app[web.1]: I, [2013-12-06T12:31:46.061146 #2] INFO -- : Refreshing Gem list
2013-12-06T12:31:50.812324+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/optionable-0.2.0/lib/optionable.rb:32:in `block in validate_strict': :skip_version_check is an unknown option. Valid options are: :write, :read, :database, :max_retries, :pool_size, :retry_interval, :refresh_interval, :down_interval, :ssl, :timeout, :instrumenter. (Optionable::Unknown)
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/optionable-0.2.0/lib/optionable.rb:27:in `each_pair'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/optionable-0.2.0/lib/optionable.rb:27:in `validate_strict'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/moped-2.0.0.beta4/lib/moped/session.rb:255:in `initialize'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bundler/gems/mongoid-f8b439dd9a59/lib/mongoid/sessions/factory.rb:66:in `new'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bundler/gems/mongoid-f8b439dd9a59/lib/mongoid/sessions/factory.rb:66:in `create_session'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bundler/gems/mongoid-f8b439dd9a59/lib/mongoid/sessions/factory.rb:43:in `default'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bundler/gems/mongoid-f8b439dd9a59/lib/mongoid/sessions.rb:37:in `default'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bundler/gems/mongoid-f8b439dd9a59/lib/mongoid.rb:62:in `default_session'
2013-12-06T12:31:50.812324+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bundler/gems/mongoid-f8b439dd9a59/lib/mongoid/railtie.rb:117:in `block in <class:Railtie>'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/lazy_load_hooks.rb:36:in `call'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/lazy_load_hooks.rb:44:in `each'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application/finisher.rb:62:in `block in <module:Finisher>'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `instance_exec'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `run'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:55:in `block in run_initializers'
2013-12-06T12:31:50.812508+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:219:in `each_strongly_connected_component_from'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:182:in `block in each_strongly_connected_component'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:180:in `each'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:180:in `each_strongly_connected_component'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:148:in `tsort_each'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:54:in `run_initializers'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:215:in `initialize!'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/railtie/configurable.rb:30:in `method_missing'
2013-12-06T12:31:50.812798+00:00 app[web.1]: from /app/config/environment.rb:5:in `<top (required)>'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from config.ru:4:in `require'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from config.ru:4:in `block in <main>'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from config.ru:1:in `new'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from config.ru:1:in `<main>'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.7.0/lib/unicorn.rb:48:in `eval'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.7.0/lib/unicorn.rb:48:in `block in builder'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.7.0/lib/unicorn/http_server.rb:750:in `call'
2013-12-06T12:31:50.813214+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.7.0/lib/unicorn/http_server.rb:750:in `build_app!'
2013-12-06T12:31:50.813391+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.7.0/lib/unicorn/http_server.rb:145:in `start'
2013-12-06T12:31:50.813391+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.7.0/bin/unicorn:126:in `<top (required)>'
2013-12-06T12:31:50.813391+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `load'
2013-12-06T12:31:50.813391+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `<main>'
2013-12-06T12:31:52.499941+00:00 heroku[web.1]: Process exited with status 1
2013-12-06T12:31:52.522399+00:00 heroku[web.1]: State changed from starting to crashed
If your Procfile is pointing to the wrong server file. e.g If your server is in server. js and your Procfile points to app. js this would definitely crash your app and Heroku would greet you with the H10-App crashed error code message.
"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. To track this kind of issue down you should look at your logs: $ heroku logs --tail --app your_app_name.
As per Heroku's recommendation for MongoHQ configuration file mongoid.yml
shall include the following options:
skip_version_check: true
safe: true
Both of these options were removed from mongoid 4 gem i.e safe mode is now default. The gem is not final yet but you can check the CHANGELOG. So, to deploy an application on Heroku with Rails 4 and mongoid 4 gem comment out the options, like below:
staging:
sessions:
default:
uri: <%= ENV['MONGOHQ_URL'] %>
options:
# skip_version_check: true
# safe: true
Okay, it seems that the problem was due to me using Mongoid 4
from it's Github Master. And since I can't use the mongoid gem with Rails 4.0.0
, I had to downgrade to Ruby 1.9.3
and Rails 3.2.3
.
Anyways, here's my new Gemfile
if you want to see:
source 'https://rubygems.org'
ruby '1.9.3'
gem 'rails', '3.2.3'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
group :production do
gem 'unicorn'
gem 'rails_12factor'
end
gem 'jquery-rails'
gem 'therubyracer'
gem 'turbolinks'
gem 'execjs'
gem 'mongoid'
gem 'devise'
gem 'aws-sdk'
gem 's3_direct_upload'
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