{"record":{"id":"5ce2bae96d8ac62c","repo":"ruby/rubygems","slug":"e-class-e","errorCode":null,"errorMessage":"#{e.class}: #{e}","messagePattern":"#\\{e\\.class\\}: #\\{e\\}","errorType":"exception","errorClass":"Gem::RemoteFetcher::FetchError","httpStatus":null,"severity":"error","filePath":"lib/rubygems/remote_fetcher.rb","lineNumber":274,"sourceCode":"      \"https\" => \"fetch_http\",\n      \"s3\" => \"fetch_s3\",\n      \"file\" => \"fetch_file\",\n    }.fetch(uri.scheme) { raise ArgumentError, \"uri scheme is invalid: #{uri.scheme.inspect}\" }\n\n    data = send method, uri, mtime, head\n\n    if data && !head && uri.to_s.end_with?(\".gz\")\n      begin\n        data = Gem::Util.gunzip data\n      rescue Zlib::GzipFile::Error\n        raise FetchError.new(\"server did not return a valid file\", uri)\n      end\n    end\n\n    data\n  rescue Gem::Timeout::Error, IOError, SocketError, SystemCallError,\n         *(OpenSSL::SSL::SSLError if Gem::HAVE_OPENSSL) => e\n    raise FetchError.new(\"#{e.class}: #{e}\", uri)\n  end\n\n  def fetch_s3(uri, mtime = nil, head = false)\n    begin\n      public_uri = s3_uri_signer(uri, head ? \"HEAD\" : \"GET\").sign\n    rescue Gem::S3URISigner::ConfigurationError, Gem::S3URISigner::InstanceProfileError => e\n      raise FetchError.new(e.message, \"s3://#{uri.host}\")\n    end\n    fetch_https public_uri, mtime, head\n  end\n\n  # we have our own signing code here to avoid a dependency on the aws-sdk gem\n  def s3_uri_signer(uri, method)\n    Gem::S3URISigner.new(uri, method)\n  end\n\n  ##\n  # Downloads +uri+ to +path+ if necessary. If no path is given, it just","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/rubygems/remote_fetcher.rb#L256-L292","documentation":"Error \"#{e.class}: #{e}\" thrown in ruby/rubygems.","triggerScenarios":"Thrown at lib/rubygems/remote_fetcher.rb:274 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check network connectivity and proxy configuration, then retry","The message includes the underlying exception class for diagnosis"],"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"}