ruby/rubygems · error · CyclicDependencyError
Your bundle requires gems that depend on each other, creatin
Error message
Your bundle requires gems that depend on each other, creating an infinite loop. Please remove either gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again. What it means
Error "Your bundle requires gems that depend on each other, creating an infinite loop. Please remove either gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again." thrown in ruby/rubygems.
Source
Thrown at lib/bundler/spec_set.rb:332
other.select do |other_spec|
spec = exemplary_spec(other_spec.name)
next unless spec
selected = spec.version == other_spec.version && valid_dependencies?(other_spec)
other_spec.source = spec.source if selected
selected
end
end
def valid_dependencies?(s)
validate_deps(s) == :valid
end
def sorted
@sorted ||= ([lookup["rake"]&.first] + tsort).compact.uniq
rescue Gem::TSort::Cyclic => error
cgems = extract_circular_gems(error)
raise CyclicDependencyError, "Your bundle requires gems that depend" \
" on each other, creating an infinite loop. Please remove either" \
" gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again."
end
def extract_circular_gems(error)
error.message.scan(/@name="(.*?)"/).flatten
end
def lookup
@lookup ||= begin
lookup = {}
@specs.each do |s|
index_spec(lookup, s.name, s)
end
lookup
end
end
View on GitHub (pinned to 86cbb817a3)
When it happens
Trigger: Thrown at lib/bundler/spec_set.rb:332 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/bd20f23769116633.
Report an issue: GitHub.