Francisco Zerpa
Francisco Zerpa

Reputation: 11

Failed to install gems via Bundler in heroku with -gemfile.lock from windows

I have my project ruby on rails in windows.

source 'http://rubygems.org'
ruby '2.5.7'
gem 'rails', '~> 5.0.0'

When I do git push heroku master, heroku throws the following errors

Compressing objects: 100% (140/140), done.
Writing objects: 100% (145/145), 843.56 KiB | 5.27 MiB/s, done.
Total 145 (delta 88), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Building on the Heroku-18 stack
remote: -----> Determining which buildpack to use for this app
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.2.33
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote:
remote: ###### WARNING:
remote:
remote:        Your app was upgraded to bundler 2.2.33.
remote:        Previously you had a successful deploy with bundler 2.2.21.
remote:
remote:        If you see problems related to the bundler version please refer to:
remote:        https://devcenter.heroku.com/articles/bundler-version#known-upgrade-issues
remote:
remote:
remote: -----> Using Ruby version: ruby-2.5.7
remote:
remote: ###### WARNING:
remote:
remote:        Removing `Gemfile.lock` because it was generated on Windows.
remote:        Bundler will do a full resolve so native gems are handled properly.
remote:        This may result in unexpected gem versions being used in your app.
remote:        In rare occasions Bundler may not be able to resolve your dependencies at all.

.....

remote:        Using uglifier 4.2.0
remote:        Using aws-sigv4 1.4.0
remote:        Using daru 0.1.6
remote:        Fetching bootsnap 1.10.1
remote:        --- ERROR REPORT TEMPLATE -------------------------------------------------------
remote:
remote:        ```
remote:        ArgumentError: wrong number of arguments (given 4, expected 1)
remote:          /tmp/build_e0d3fad0/vendor/bundle/ruby/2.5.0/gems/psych-4.0.3/lib/psych.rb:323:in `safe_load'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/safe_yaml.rb:31:in `safe_load'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:496:in `block (2 levels) in read_checksums'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:495:in `wrap'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:495:in `block in read_checksums'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package/tar_reader.rb:116:in `seek'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:494:in `read_checksums'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:547:in `block (2 levels) in verify'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package/tar_reader.rb:29:in `new'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:546:in `block in verify'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package/file_source.rb:30:in `open'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package/file_source.rb:30:in `with_read_io'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:545:in `verify'
remote:          /tmp/build_e0d3fad0/vendor/ruby-2.5.7/lib/ruby/2.5.0/rubygems/package.rb:526:in `spec'
remote:          /tmp/build_e0d3fad0/vendor/bundle/ruby/2.5.0/gems/bundler-2.2.33/lib/bundler/rubygems_integration.rb:250:in `spec_from_gem'

...

remote:        <No /tmp/build_e0d3fad0/Gemfile.lock found>
remote:        ```
remote:
remote:        --- TEMPLATE END ----------------------------------------------------------------
remote:
remote:        Unfortunately, an unexpected error occurred, and Bundler cannot continue.
remote:
remote:        First, try this link to see if there are any existing issue reports for this error:
remote:        https://github.com/rubygems/rubygems/search?q=wrong+number+of+arguments+%28given+4%2C+expected+1%29&type=Issues
remote:
remote:        If there aren't any reports for this error yet, please fill in the new issue form located at https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md, and copy and paste the report template above in there.
remote:
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to tksoft.
remote:
To https://git.heroku.com/tksoft.git
 ! [remote rejected] fran -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/tksoft.git'

I already did a lot of things, but everything not working, For example:

  1. Created a new branch and push from this
  2. Modify Gemfile to put de same version bundler the heroku, and PLATFORMS ruby x64-mingw32 x86_64-linux
  3. Set buildpacks in heroku to the last version of deploy

Thanks for your help

Upvotes: 1

Views: 368

Answers (1)

Pavel Oganesyan
Pavel Oganesyan

Reputation: 6924

Looks like there is a problem in psych gem, specifically in the safe_load method that got some breaking changes. Windows is not the problem here.

It was discussed in these questions: here and there and in the issue.

Until issue is not fixed I'd suggest to manually set the version of psych to older 3.3.2 in Gemfile.

Upvotes: 0

Related Questions