Warning with fog and AWS: unable to load the 'unf' gem

Ruby on-RailsRubyAmazon Web-ServicesFog

Ruby on-Rails Problem Overview


Every action in a rails console (rails server, rails console, db:migrate, etc.) raises a warning since my last bundle update:

[fog][WARNING] Unable to load the 'unf' gem. Your AWS strings may not be properly encoded.

I'm sure I didn't change anything in the AWS strings which are in my application.rb file:

  	# Amazon S3 credentials
ENV["AWS_ACCESS_KEY_ID"] = "AWS_ACCESS_KEY_ID"
ENV["AWS_SECRET_ACCESS_KEY"] = "AWS_SECRET_ACCESS_KEY"
ENV["AWS_S3_BUCKET"] = "my-bucket"

I don't have this "unf" gem in my gemfile. Should I add it?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

Yes, this just happened a few days ago. You can see from the pull request and commit that the unf dependency is optional.

https://github.com/fog/fog/pull/2320/commits

When I updated my current bundle with fog I received the same warnings, and adding

gem 'unf' 

does indeed remove the warning without any issues.

Solution 2 - Ruby on-Rails

If you do not have any S3 buckets/objects that would have not ASCII characters in the names, I think you can safely disregard the warning. We may do something to make it less noisy also, but for now you can ignore or add unf to quiet it down, as @trh pointed out.

Solution 3 - Ruby on-Rails

I apparently had fog-1.18.0 installed when I saw this error. (Restarting an aws vagrant project I installed a while ago) My naive attempt at a fix was to start with an upgrade

  gem install fog

which upgraded something to fog-1.21.0. As it warned, "This could take a while..." ... and that did not help.

Exactly WHERE to add "gem 'unf'" wasn't clear from the solution voted up here, it seemed to be lib/fog/aws.rb but that was already there when I looked.

  gem install unf

appeared to add it somewhere, but the problem did not go away.

I upgraded vagrant itself (1.4.3 to 1.5.1) and THAT didn't fix it.

Eventually, the fix was

  vagrant plugin install unf

as I found in a thread at https://github.com/mitchellh/vagrant/issues/2507

I'm not sure if any of my previous fumbling attempts were also necessary, so I noted them here anyway.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionArenzelView Question on Stackoverflow
Solution 1 - Ruby on-RailstrhView Answer on Stackoverflow
Solution 2 - Ruby on-RailsgeemusView Answer on Stackoverflow
Solution 3 - Ruby on-RailsdmanView Answer on Stackoverflow