Knowledge Base/Engine Yard Cloud Documentation/Troubleshooting

Bundler Version Issue “uninitialized contant Gem::SilentUI (NameError)”

Engine Yard
posted this on February 16, 2012 10:02 AM

The Engine Yard platform defaults to Bundler version 1.0.10, which throws the above error with newer versions of Rubygems. A common fix for this is to specify the Bundler version.

If the version of Bundler you’re using is 1.0.15, add this to your Gemfile

gem 'bundler', '1.0.15' 

and then run

bundle update bundler 

from the command line.

Common mistakes

  • Make sure to specify '1.0.15' and not '~>1.0.15' to ensure against future changes.
  • Run bundle update bundler from your local machine to create a new Gemfile.lock in your application. Otherwise this change won’t show up.

If you have feedback or questions about this page, add a comment below. If you need help, submit a ticket with Engine Yard Support.

 

Comments

User photo
GovDelivery Notifications Dashboard
GovDelivery

This does not work at all on my instance. The error is thrown when "bundle install" is run, so I'm not sure how adding something to the Gemfile would ever fix it. It never even gets around to reading the Gemfile.

I had to manually SSH into my instance and run 'sudo gem install bundler'. Not terribly convenient, but effective.

November 09, 2012 12:48 PM
User photo
Ryan Porter
Venue Driver, LLC

This also does not work for me.  "bundle update bundler" results in an error, "Could not find gem 'bundler'.  Did you mean builder?"

I was trying to update because there is a "ruby" directive in my Gemfile.  The "1.0.21" Bundler version doesn't understand that directive, so I was trying to upgrade Bundler.  The only way that I could get a successful deployment was by giving up and removing the "ruby" directive from my Gemfile.

January 17, 2014 12:37 PM
User photo
Kevin Rutten
Engine Yard Inc.

Hello Ryan and GovDelivery,

The deploy will install Bundler during the deploy if a Gemfile is detected.

We have a default version such as Bundler 1.1.5 in the v2.0 Engineyard gem release

https://github.com/engineyard/engineyard-serverside/blob/2-0-stable...

and Bundler 1.3.5 in the v2.3 release

https://github.com/engineyard/engineyard-serverside/blob/v2.3.7/lib...

Some issue are related to the Bundler version you use, you can set a version inside you Gemfile. In the v2.0 Engineyard gem, we parse the Gemfile.lock in

https://github.com/engineyard/engineyard-serverside/blob/2-0-stable...

and in the v2.3 Engineyard gem we use updated code

https://github.com/engineyard/engineyard-serverside/blob/v2.3.7/lib...

so we can detect the version you need.

 

One thing to note, we track the version of the Engineyard gem you use to deploy and try and use the same version on the dashboard when you click the button.  To use the newest deploy version in the UI, just deploy once with the newest CLI version.  Another issue is using bundler in custom chef that runs before your initial deploy. Here you can just add your preferred bundler version to the environments gem list and it will be installed during the main cookbook run.

If this is not working, please open a ticket withe the app/environment and we can examine your instances and open a bug report on this.

Regards,
Kevin

January 17, 2014 05:35 PM