Skip to content

bundler (= 2.5.1) required by user-specified dependency / undefined method `request' for nil:NilClass (NoMethodError) #7308

@pboling

Description

@pboling

I have a gem that supports Ruby 2.7+.

I want to update the lockfile to be using the latest version of bundler that still supports Ruby 2.7, but I seem to have broken my RubyGems / Bundler install completely.

I am using Ruby 2.7.8 (which I know is no longer supported, so not sure what to do here)

This is the end result:

❯ bundle update --bundler
Fetching gem metadata from https://rubygems.org/.
Updating bundler to 2.5.1.
Fetching bundler 2.5.1
Installing bundler 2.5.1
Traceback (most recent call last):
        15: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
        14: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
        13: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
        12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
        11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
        10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
         9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
         8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:191:in `resolve'
         7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
         6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:182:in `resolve'
         5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:254:in `process_topmost_state'
         4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:682:in `attempt_to_activate'
         3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `unwind_for_conflict'
         2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `tap'
         1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:299:in `block in unwind_for_conflict'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:317:in `raise_error_unless_state': Unable to satisfy the following requirements: (Gem::Resolver::Molinillo::VersionConflict)

- `bundler (= 2.5.1)` required by `user-specified dependency`
        13: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
        12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
        11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
        10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
         9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
         8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
         7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
         6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:192:in `resolve'
         5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `rescue in resolve'
         4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `raise'
         3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `exception'
         2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:55:in `initialize'
         1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:61:in `conflicting_dependencies'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/conflict.rb:48:in `conflicting_dependencies': undefined method `request' for nil:NilClass (NoMethodError)

And here is how I ended up there:

❯ gem update --system
Updating rubygems-update
Fetching rubygems-update-3.5.1.gem
ERROR:  Error installing rubygems-update:
        There are no versions of rubygems-update (= 3.5.1) compatible with your Ruby & RubyGems
        rubygems-update requires Ruby version >= 3.0.0. The current ruby version is 2.7.8.225.
Installing RubyGems 3.4.21
  Successfully built RubyGem
  Name: bundler
  Version: 2.4.21
  File: bundler-2.4.21.gem
Bundler 2.4.21 installed
RubyGems 3.4.21 installed
Regenerating binstubs
Regenerating plugins
# ...

I thought, that's strange, I know there is one more point release after that which still supports Ruby 2.7, and sure enough, when I ran another command it installed:

❯ gem -v
3.4.21
❯ gem install rubygems-update -v 3.4.22
Fetching rubygems-update-3.4.22.gem
Successfully installed rubygems-update-3.4.22
1 gem installed

A new release of RubyGems is available: 3.4.21 → 3.5.1!
Run `gem update --system 3.5.1` to update your installation.

That post install note is not applicable to Ruby 2.7, so I didn't try doing it. Instead I ran the normal next step, update_rubygems:

❯ update_rubygems

  Successfully built RubyGem
  Name: bundler
  Version: 2.4.22
  File: bundler-2.4.22.gem
Bundler 2.4.22 installed
RubyGems 3.4.22 installed
Regenerating binstubs
Regenerating plugins
# ...

Now I get the error at the top for every bundle command (e.g. bundle -v, and bundle install):

❯ bundle -v
Traceback (most recent call last):
        15: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
        14: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
        13: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
        12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
        11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
        10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
         9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
         8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:191:in `resolve'
         7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
         6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:182:in `resolve'
         5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:254:in `process_topmost_state'
         4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:682:in `attempt_to_activate'
         3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `unwind_for_conflict'
         2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `tap'
         1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:299:in `block in unwind_for_conflict'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:317:in `raise_error_unless_state': Unable to satisfy the following requirements: (Gem::Resolver::Molinillo::VersionConflict)

- `bundler (= 2.5.1)` required by `user-specified dependency`
        13: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
        12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
        11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
        10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
         9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
         8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
         7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
         6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:192:in `resolve'
         5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `rescue in resolve'
         4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `raise'
         3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `exception'
         2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:55:in `initialize'
         1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:61:in `conflicting_dependencies'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/conflict.rb:48:in `conflicting_dependencies': undefined method `request' for nil:NilClass (NoMethodError)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions