8

When I try to run 'bundle install', I get a weird error: "invalid byte sequence in US-ASCII (ArgumentError)"

  $ bundle install
    Updating git://github.com/devton/catarse_paypal_express.git
    Unfortunately, a fatal error has occurred. Please see the Bundler
    troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
    /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:294:in `block in load_gemspec_uncached': invalid byte sequence in US-ASCII (ArgumentError)
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:291:in `chdir'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:291:in `load_gemspec_uncached'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:282:in `load_gemspec'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:411:in `block in load_spec_files'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `each'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `load_spec_files'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:799:in `load_spec_files'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:381:in `local_specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:774:in `specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:491:in `block in converge_locked_specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `each'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `converge_locked_specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:166:in `resolve'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:113:in `specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:108:in `resolve_remotely!'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/installer.rb:81:in `run'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/installer.rb:14:in `install'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/cli.rb:230:in `install'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/task.rb:27:in `run'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor.rb:275:in `dispatch'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/base.rb:408:in `start'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/bin/bundle:14:in `block in <top (required)>'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:4:in `with_friendly_errors'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/bin/bundle:14:in `<top (required)>'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `load'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `<main>'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/ruby_noexec_wrapper:14:in `eval'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/ruby_noexec_wrapper:14:in `<main>'

I did find this workaround (which works for me):

if RUBY_VERSION =~ /1.9/
  Encoding.default_external = Encoding::UTF_8
  Encoding.default_internal = Encoding::UTF_8
end

But I think that later it causes a different error so I'd rather not use it and just try to understand what's really wrong here. I know for sure this same code works on a different system...

1 Answer 1

19

As a workaround you can set utf8 locale in your system:

export LANG="C.UTF-8"
export LC_ALL="C.UTF-8"

More info about this is here

Sign up to request clarification or add additional context in comments.

3 Comments

That's the thing - I don't want a workaround, I want to understand the reason for the problem and solve it.
Without viewing the exact file (well, gemspec in this case) I cannot say for sure but the most likely cause of this is that the file is encoded using utf8 but Ruby is trying to read the file and assuming it is encoded using ASCII. You cannot solve this problem as such and the best method to deal with it is to use the workaround which tells ruby to assume the default is utf8.
@Rizon I've update the answer with a link to the bundler issue

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.