{"record":{"id":"bd20f23769116633","repo":"ruby/rubygems","slug":"your-bundle-requires-gems-that-depend-on-each-othe","errorCode":null,"errorMessage":"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.","messagePattern":"Your bundle requires gems that depend on each other, creating an infinite loop\\. Please remove either gem '#(.+?)' or gem '#(.+?)' and try again\\.","errorType":"exception","errorClass":"CyclicDependencyError","httpStatus":null,"severity":"error","filePath":"lib/bundler/spec_set.rb","lineNumber":332,"sourceCode":"      other.select do |other_spec|\n        spec = exemplary_spec(other_spec.name)\n        next unless spec\n\n        selected = spec.version == other_spec.version && valid_dependencies?(other_spec)\n        other_spec.source = spec.source if selected\n        selected\n      end\n    end\n\n    def valid_dependencies?(s)\n      validate_deps(s) == :valid\n    end\n\n    def sorted\n      @sorted ||= ([lookup[\"rake\"]&.first] + tsort).compact.uniq\n    rescue Gem::TSort::Cyclic => error\n      cgems = extract_circular_gems(error)\n      raise CyclicDependencyError, \"Your bundle requires gems that depend\" \\\n        \" on each other, creating an infinite loop. Please remove either\" \\\n        \" gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again.\"\n    end\n\n    def extract_circular_gems(error)\n      error.message.scan(/@name=\"(.*?)\"/).flatten\n    end\n\n    def lookup\n      @lookup ||= begin\n        lookup = {}\n        @specs.each do |s|\n          index_spec(lookup, s.name, s)\n        end\n        lookup\n      end\n    end\n","sourceCodeStart":314,"sourceCodeEnd":350,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/bundler/spec_set.rb#L314-L350","documentation":"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.","triggerScenarios":"Thrown at lib/bundler/spec_set.rb:332 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"86cbb817a38ce8477b181c17467a703ded3f2be8","analyzedAt":"2026-08-23T06:27:48.159Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}