ruby/rubygems · error · Gem::DependencyResolutionError
#{e.explanation} #{extended}
Error message
#{e.explanation}
#{extended} What it means
Error "#{e.explanation} #{extended}" thrown in ruby/rubygems.
Source
Thrown at lib/rubygems/resolver.rb:190
# Convert to Array<ActivationRequest>
needed_by_name = @needed.group_by(&:name)
requests = result.filter_map do |package, version|
next if Gem::PubGrub::Package.root?(package)
spec = spec_for(package.to_s, version)
dep = needed_by_name[package.to_s]&.first || Gem::Dependency.new(package.to_s)
dep_request = DependencyRequest.new(dep, nil)
ActivationRequest.new(spec, dep_request)
end
@cooldown_skipped = cooldown_skipped_summary(requests) if @cooldown&.active?
requests
rescue Gem::PubGrub::SolveFailure => e
extended = extract_extended_explanation(e.incompatibility)
if extended
message = "#{e.explanation}\n\n#{extended}"
raise Gem::DependencyResolutionError, Struct.new(:explanation).new(message)
else
raise Gem::DependencyResolutionError, e
end
end
# PubGrub source interface methods
def all_versions_for(package)
versions = @sorted_versions[package].reverse # highest first
name = package.to_s
if (skip_dep_gems = skip_gems[name]) && !skip_dep_gems.empty?
# Conservative mode: float the already-installed (skip) versions to the
# front so the solver prefers them. This sets *preference* only (it feeds
# the strategy's version-index map); it does not restrict availability, so
# every version stays selectable via versions_for. When an installed
# version is made impossible by a downstream conflict, the solver
# backtracks to a newer version instead of failing. Molinillo insteadView on GitHub (pinned to 86cbb817a3)
Solutions
- Read the resolver explanation in the output and relax conflicting version constraints
- Run `bundle update <gem>` or `gem update <gem>` to allow newer compatible versions
When it happens
Trigger: Thrown at lib/rubygems/resolver.rb:190 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/7662fd775f33ee71.
Report an issue: GitHub.