ruby/rubygems · error · GemfileError

4

4

Error message

The #{name} dependency has conflicting requirements in Gemfile (#{gemfile_dep.requirement}) and gemspec (#{gemspec_dep.requirement})

What it means

Error "The #{name} dependency has conflicting requirements in Gemfile (#{gemfile_dep.requirement}) and gemspec (#{gemspec_dep.requirement})" thrown in ruby/rubygems.

Source

Thrown at lib/bundler/dsl.rb:345

      # if there's already a dependency with this name we try to prefer one
      if current = @dependencies.find {|d| d.name == name }
        if current.requirement != dep.requirement
          current_requirement_open = current.requirements_list.include?(">= 0")

          gemspec_dep = [dep, current].find(&:gemspec_dev_dep?)
          if gemspec_dep
            require_relative "vendored_pub_grub"

            current_gemspec_range = Gem::PubGrub::RubyGems.requirement_to_range(current.requirement)
            next_gemspec_range = Gem::PubGrub::RubyGems.requirement_to_range(dep.requirement)

            if current_gemspec_range.intersects?(next_gemspec_range)
              dep = Dependency.new(name, current.requirement.as_list + dep.requirement.as_list, options)
            else
              gemfile_dep = [dep, current].find(&:gemfile_dep?)

              if gemfile_dep
                raise GemfileError, "The #{name} dependency has conflicting requirements in Gemfile (#{gemfile_dep.requirement}) and gemspec (#{gemspec_dep.requirement})"
              else
                raise GemfileError, "Two gemspec development dependencies have conflicting requirements on the same gem: #{dep} and #{current}"
              end
            end
          else
            update_prompt = ""

            if File.basename(@gemfile) == Injector::INJECTED_GEMS
              if dep.requirements_list.include?(">= 0") && !current_requirement_open
                update_prompt = ". Gem already added"
              else
                update_prompt = ". If you want to update the gem version, run `bundle update #{name}`"

                update_prompt += ". You may also need to change the version requirement specified in the Gemfile if it's too restrictive." unless current_requirement_open
              end
            end

            raise GemfileError, "You cannot specify the same gem twice with different version requirements.\n" \

View on GitHub (pinned to 86cbb817a3)

When it happens

Trigger: Thrown at lib/bundler/dsl.rb:345 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruby/rubygems@86cbb817a3 (2026-08-23). Data as JSON: /api/errors/023b77bb3d3dbdb4. Report an issue: GitHub.