Rails uninitialized constant Bundler (NameError)

bundler, ruby-on-rails

Solution

These commands from the bundler FAQ did the trick:

#remove project-specific settings
rm -rf .bundle/

# remove project-specific cached gems and repos
rm -rf vendor/cache/

# remove the saved resolve of the Gemfile
rm -rf Gemfile.lock

and then rebundling with `bundle install`

edit: heroku deploy was also failing to start up because it starts the server with bin/rails s and my binstubs were all wonky. to fix this: `BUNDLE INSTALL --BINSTUBS`, again from bundler docs

Problem

I'm getting the following error when running any rails commands like `rails s` or `rails c`, it's also preventing my heroku app from starting (same error): ``` app/config/application.rb:7:in `<top (required)>': uninitialized constant Bundler (NameError) from /Users/you/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require' ``` Line 7 in the error message is: ``` Bundler.require(:default, Rails.env) ``` Doing the commands as `bundle exec rails s` succeeds, but that doesn't help the heroku app. I've verified `which ruby`, `which rails` and `which bundler`. I've also tried starting a new rvm gemset and reinstalling the bundle. The heroku error is identical: ``` /app/config/application.rb:7:in `<top (required)>': uninitialized constant Bundler (NameError) ``` running `bundle check` returns no issues. Some similar questions suggested this: ``` bundle config --delete bin # Turn off Bundler's stub generator rake rails:update:bin # Use the new Rails 4 executables git add bin # Add bin/ to source control ``` But I tried it and got no changes. I'm on Rails 4 edit: I was working in another app and ran `rails g model` and this popped up: ``` Bundler is using a binstub that was created for a different gem. This is deprecated, in future versions you may need to `bundle binstub rails` to work around a system/bundle conflict. ``` gemfile ``` source 'https://rubygems.org' ruby '2.0.0' gem 'rails', '4.0.3' gem 'sass-rails', '~> 4.0.1' gem 'uglifier' gem 'coffee-rails' gem 'jquery-rails' gem 'turbolinks' gem 'jbuilder' gem 'bcrypt-ruby' gem "geocoder" gem 'gmaps4rails' gem "paperclip" gem 'route_translator' gem 'aws-sdk' gem 'ckeditor' gem 'soundcloud' gem 'omniauth-facebook' gem 'twitter' gem 'pg' gem 'unicorn' gem 'sass' gem 'compass', '0.12.2' gem 'font-awesome-rails' gem 'acts-as-taggable-on' gem 'json', '1.7.7' gem 'figaro' #for mailchimp api gem 'gibbon' #for deploying gem 'capistrano', '~> 3.0.1' gem 'capistrano-rails', '~> 1.1.0' gem 'capistrano-bundler' gem 'capistrano-rbenv', '~> 2.0' gem 'exception_notification' gem 'textacular' gem 'mail_form' gem 'dumper' group :doc do gem 'sdoc', require: false end # development gems group :development, :test do # env variables gem "faker" end # Paging gem 'kaminari' gem 'will_paginate-bootstrap', '~> 1.0.0' # Slugs and friendly id's gem 'friendly_id' # font-awesome gem 'font-awesome-sass', '~> 4.0.2' # production gems for heroku group :production do gem 'rails_12factor' gem 'therubyracer' gem 'execjs' end # Devise gem 'devise' gem 'chosen-rails' # Bootstrap 3 group :development, :test do gem 'rails_layout' # Bootstrap 3 layout generator end gem 'bootstrap-sass', '~> 3.0.3.0' # RSpec group :test, :development do gem "rspec-rails" gem "factory_girl_rails" end # Capybara group :test do gem "capybara" gem 'email_spec' end ``` gemfile.lock GEM ``` remote: https://rubygems.org/ specs: actionmailer (4.0.3) actionpack (= 4.0.3) mail (~> 2.5.4) actionpack (4.0.3) activesupport (= 4.0.3) builder (~> 3.1.0) erubis (~> 2.7.0) rack (~> 1.5.2) rack-test (~> 0.6.2) activemodel (4.0.3) activesupport (= 4.0.3) builder (~> 3.1.0) activerecord (4.0.3) activemodel (= 4.0.3) activerecord-deprecated_finders (~> 1.0.2) activesupport (= 4.0.3) arel (~> 4.0.0) activerecord-deprecated_finders (1.0.3) activesupport (4.0.3) i18n (~> 0.6, >= 0.6.4) minitest (~> 4.2) multi_json (~> 1.3) thread_safe (~> 0.1) tzinfo (~> 0.3.37) acts-as-taggable-on (3.1.1) actionpack (>= 3, < 5) activerecord (>= 3, < 5) activesupport (>= 3, < 5) addressable (2.3.6) arel (4.0.2) aws-sdk (1.38.0) json (~> 1.4) nokogiri (>= 1.4.4) uuidtools (~> 2.1) bcrypt (3.1.7) bcrypt-ruby (3.1.5) bcrypt (>= 3.1.3) bootstrap-sass (3.0.3.0) sass (~> 3.2) builder (3.1.4) capistrano (3.0.1) i18n rake (>= 10.0.0) sshkit (>= 0.0.23) capistrano-bundler (1.1.2) capistrano (~> 3.0) sshkit (~> 1.2) capistrano-rails (1.1.0) capistrano (>= 3.0.0) capistrano-bundler (>= 1.0.0) capistrano-rbenv (2.0.1) capistrano (~> 3.0) sshkit (~> 1.3) capybara (2.2.1) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) chosen-rails (1.1.0) coffee-rails (>= 3.2) compass-rails (>= 1.1.2) railties (>= 3.0) sass-rails (>= 3.2) chunky_png (1.3.0) ckeditor (4.0.11) mime-types orm_adapter (~> 0.5.0) climate_control (0.0.3) activesupport (>= 3.0) cocaine (0.5.4) climate_control (>= 0.0.3, < 1.0) coffee-rails (4.0.1) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) coffee-script (2.2.0) coffee-script-source execjs coffee-script-source (1.7.0) compass (0.12.2) chunky_png (~> 1.2) fssm (>= 0.2.7) sass (~> 3.1) compass-rails (1.1.7) compass (>= 0.12.2) sprockets (<= 2.11.0) devise (3.2.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 3.2.6, < 5) thread_safe (~> 0.1) warden (~> 1.2.3) diff-lcs (1.2.5) dumper (1.5.0) multi_json (>= 1.0) multipart-post (>= 1.1.5) posix-spawn (>= 0.3.6) email_spec (1.5.0) launchy (~> 2.1) mail (~> 2.2) erubis (2.7.0) exception_notification (4.0.1) actionmailer (>= 3.0.4) activesupport (>= 3.0.4) execjs (2.0.2) factory_girl (4.4.0) activesupport (>= 3.0.0) factory_girl_rails (4.4.1) factory_girl (~> 4.4.0) railties (>= 3.0.0) faker (1.3.0) i18n (~> 0.5) faraday (0.9.0) multipart-post (>= 1.2, < 3) figaro (0.7.0) bundler (~> 1.0) rails (>= 3, < 5) font-awesome-rails (4.0.3.1) railties (>= 3.2, < 5.0) font-awesome-sass (4.0.3.1) sass (~> 3.2) friendly_id (5.0.3) activerecord (>= 4.0.0) fssm (0.2.10) geocoder (1.2.0) gibbon (1.1.2) httparty multi_json (>= 1.3.4) gmaps4rails (2.1.2) hashie (2.1.1) hike (1.2.3) httmultiparty (0.3.14) httparty (>= 0.7.3) mimemagic multipart-post httparty (0.11.0) multi_json (~> 1.0) multi_xml (>= 0.5.2) i18n (0.6.9) jbuilder (2.0.6) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) jquery-rails (3.1.0) railties (>= 3.0, < 5.0) thor (>= 0.14, < 2.0) json (1.7.7) jwt (0.1.11) multi_json (>= 1.5) kaminari (0.15.1) actionpack (>= 3.0.0) activesupport (>= 3.0.0) kgio (2.9.2) launchy (2.4.2) addressable (~> 2.3) libv8 (3.16.14.3) mail (2.5.4) mime-types (~> 1.16) treetop (~> 1.4.8) mail_form (1.5.0) actionmailer (>= 3.2, < 5) activemodel (>= 3.2, < 5) mime-types (1.25.1) mimemagic (0.2.1) mini_portile (0.5.3) minitest (4.7.5) multi_json (1.9.2) multi_xml (0.5.5) multipart-post (2.0.0) net-scp (1.2.0) net-ssh (>= 2.6.5) net-ssh (2.8.0) nokogiri (1.6.1) mini_portile (~> 0.5.0) oauth2 (0.9.3) faraday (>= 0.8, < 0.10) jwt (~> 0.1.8) multi_json (~> 1.3) multi_xml (~> 0.5) rack (~> 1.2) omniauth (1.2.1) hashie (>= 1.2, < 3) rack (~> 1.0) omniauth-facebook (1.6.0) omniauth-oauth2 (~> 1.1) omniauth-oauth2 (1.1.2) faraday (>= 0.8, < 0.10) multi_json (~> 1.3) oauth2 (~> 0.9.3) omniauth (~> 1.2) orm_adapter (0.5.0) paperclip (4.1.1) activemodel (>= 3.0.0) activesupport (>= 3.0.0) cocaine (~> 0.5.3) mime-types pg (0.17.1) polyglot (0.3.4) posix-spawn (0.3.8) rack (1.5.2) rack-test (0.6.2) rack (>= 1.0) rails (4.0.3) actionmailer (= 4.0.3) actionpack (= 4.0.3) activerecord (= 4.0.3) activesupport (= 4.0.3) bundler (>= 1.3.0, < 2.0) railties (= 4.0.3) sprockets-rails (~> 2.0.0) rails_12factor (0.0.2) rails_serve_static_assets rails_stdout_logging rails_layout (1.0.14) rails_serve_static_assets (0.0.2) rails_stdout_logging (0.0.3) railties (4.0.3) actionpack (= 4.0.3) activesupport (= 4.0.3) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) raindrops (0.13.0) rake (10.3.0) rdoc (3.12.2) json (~> 1.4) ref (1.0.5) route_translator (3.2.0) rspec-core (2.14.8) rspec-expectations (2.14.5) diff-lcs (>= 1.1.3, < 2.0) rspec-mocks (2.14.6) rspec-rails (2.14.2) actionpack (>= 3.0) activemodel (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) rspec-core (~> 2.14.0) rspec-expectations (~> 2.14.0) rspec-mocks (~> 2.14.0) sass (3.2.19) sass-rails (4.0.3) railties (>= 4.0.0, < 5.0) sass (~> 3.2.0) sprockets (~> 2.8, <= 2.11.0) sprockets-rails (~> 2.0) sdoc (0.3.20) json (>= 1.1.3) rdoc (~> 3.10) simple_oauth (0.2.0) soundcloud (0.3.2) hashie (~> 2.0) httmultiparty (~> 0.3.0) sprockets (2.11.0) hike (~> 1.2) multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) sprockets-rails (2.0.1) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (~> 2.8) sshkit (1.4.0) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) term-ansicolor term-ansicolor (1.3.0) tins (~> 1.0) textacular (3.2.0) activerecord (>= 3.0, < 4.2) therubyracer (0.12.1) libv8 (~> 3.16.14.0) ref thor (0.19.1) thread_safe (0.3.3) tilt (1.4.1) tins (1.1.0) treetop (1.4.15) polyglot polyglot (>= 0.3.1) turbolinks (2.2.2) coffee-rails twitter (4.8.1) faraday (~> 0.8, < 0.10) multi_json (~> 1.0) simple_oauth (~> 0.2) tzinfo (0.3.39) uglifier (2.2.1) execjs (>= 0.3.0) multi_json (~> 1.0, >= 1.0.2) unicorn (4.8.2) kgio (~> 2.6) rack raindrops (~> 0.7) uuidtools (2.1.4) warden (1.2.3) rack (>= 1.0) will_paginate (3.0.5) will_paginate-bootstrap (1.0.0) will_paginate (>= 3.0.3) xpath (2.0.0) nokogiri (~> 1.3) PLATFORMS ruby DEPENDENCIES acts-as-taggable-on aws-sdk bcrypt-ruby bootstrap-sass (~> 3.0.3.0) capistrano (~> 3.0.1) capistrano-bundler capistrano-rails (~> 1.1.0) capistrano-rbenv (~> 2.0) capybara chosen-rails ckeditor coffee-rails compass (= 0.12.2) devise dumper email_spec exception_notification execjs factory_girl_rails faker figaro font-awesome-rails font-awesome-sass (~> 4.0.2) friendly_id geocoder gibbon gmaps4rails jbuilder jquery-rails json (= 1.7.7) kaminari mail_form omniauth-facebook paperclip pg rails (= 4.0.3) rails_12factor rails_layout route_translator rspec-rails sass sass-rails (~> 4.0.1) sdoc soundcloud textacular therubyracer turbolinks twitter uglifier unicorn will_paginate-bootstrap (~> 1.0.0) ``` update2: If I clone the repo and `bundle install`, and the try to run `rails s` or any rake task, I replicate the `bundler` errors. However, if I then do `gem install bundler` and `gem install rake`, the new repo will work fine. Uninstalling and reinstalling the two gems in my original repo will not fix the issue. glad I've found a quasi fix, but would still like to get to the bottom of this. update3: I think I've narrowed it down to an issue with the gems, but not sure how to proceed. If I run the commands that trigger errors using my default gemset, there is no issue, it's only when I switch over to the gemset for this project that I get errors. I did not run `bundle update` before testing commands with the default gemset. update4: I've cloned the repo on another machine and it replicates the issue. So I'm guessing it's time to start going back and checking commits from before this issue and see what happens? My other idea is to start commenting out gems / removing dependencies and seeing if that helps. Anything else I might want to look at? After removing all gems, the warning with `uninitialized constant` is still present.

Original source