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/remote_fetcher.rb:227
Gem.read_binary Gem::Util.correct_for_windows_path uri.path
end
##
# HTTP Fetcher. Dispatched by +fetch_path+. Use it instead.
def fetch_http(uri, last_modified = nil, head = false, depth = 0)
fetch_type = head ? Gem::Net::HTTP::Head : Gem::Net::HTTP::Get
response = request uri, fetch_type, last_modified do |req|
headers.each {|k,v| req.add_field(k,v) }
end
case response
when Gem::Net::HTTPOK, Gem::Net::HTTPNotModified then
response.uri = uri
head ? response : response.body
when Gem::Net::HTTPMovedPermanently, Gem::Net::HTTPFound, Gem::Net::HTTPSeeOther,
Gem::Net::HTTPTemporaryRedirect then
raise FetchError.new("too many redirects", uri) if depth > 10
unless location = response["Location"]
raise FetchError.new("redirecting but no redirect location was given", uri)
end
location = Gem::Uri.new location
if https?(uri) && !https?(location)
raise FetchError.new("redirecting to non-https resource: #{location}", uri)
end
fetch_http(location, last_modified, head, depth + 1)
else
custom_error = response["X-Error-Message"]
error_detail = custom_error || response.message
raise FetchError.new("Bad response #{error_detail} #{response.code}", uri)
end
end
View on GitHub (pinned to 86cbb817a3)
Solutions
- Check the gem source for a redirect loop; use the final URL directly in your source list
When it happens
Trigger: Thrown at lib/rubygems/remote_fetcher.rb:227 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/d9c591dbe0a207b1.
Report an issue: GitHub.