ruby/rubygems · error · Gem::RemoteFetcher::FetchError
too many redirects
Error message
too many redirects
What it means
Error "too many redirects" thrown in ruby/rubygems.
Source
Thrown at lib/rubygems/compact_index_client/http_fetcher.rb:38
end
def call(path, headers = {})
fetch(@base_uri + path, headers, REDIRECT_LIMIT)
end
private
def fetch(uri, headers, redirects_remaining)
response = @remote_fetcher.request(uri, Gem::Net::HTTP::Get) do |req|
headers.each {|name, value| req[name] = value }
end
case response
when Gem::Net::HTTPSuccess, Gem::Net::HTTPNotModified
response
when Gem::Net::HTTPMovedPermanently, Gem::Net::HTTPFound, Gem::Net::HTTPSeeOther,
Gem::Net::HTTPTemporaryRedirect, Gem::Net::HTTPPermanentRedirect
raise Gem::RemoteFetcher::FetchError.new("too many redirects", uri) if redirects_remaining.zero?
location = response["Location"]
raise Gem::RemoteFetcher::FetchError.new("redirecting but no redirect location was given", uri) unless location
fetch(uri + location, headers, redirects_remaining - 1)
when Gem::Net::HTTPRangeNotSatisfiable
raise Gem::RemoteFetcher::FetchError.new("bad response #{response.message} #{response.code}", uri) unless headers.key?("Range")
# The local cache is longer than the remote file, refetch it whole.
fetch(uri, headers.except("Range"), redirects_remaining)
else
raise Gem::RemoteFetcher::FetchError.new("bad response #{response.message} #{response.code}", uri)
end
end
end
end
View on GitHub (pinned to 86cbb817a3)
When it happens
Trigger: Thrown at lib/rubygems/compact_index_client/http_fetcher.rb:38 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/ba5e39726f15b2d5.
Report an issue: GitHub.