{"record":{"id":"dc06c58681a21aa2","repo":"ruby/rubygems","slug":"gem-sources-must-be-absolute-you-provided-s","errorCode":null,"errorMessage":"Gem sources must be absolute. You provided '%s'.","messagePattern":"Gem sources must be absolute\\. You provided '(.+?)'\\.","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/bundler/settings.rb","lineNumber":547,"sourceCode":"      key.upcase!\n\n      key.gsub(/\\A([ #]*)/, '\\1BUNDLE_')\n    end\n\n    # TODO: duplicates Rubygems#normalize_uri\n    # TODO: is this the correct place to validate mirror URIs?\n    def self.normalize_uri(uri)\n      uri = uri.to_s\n      if uri =~ NORMALIZE_URI_OPTIONS_PATTERN\n        prefix = $1\n        uri = $2\n        suffix = $3\n      end\n      uri = URINormalizer.normalize_suffix(uri)\n      require_relative \"vendored_uri\"\n      uri = Gem::URI(uri)\n      unless uri.absolute?\n        raise ArgumentError, format(\"Gem sources must be absolute. You provided '%s'.\", uri)\n      end\n      \"#{prefix}#{uri}#{suffix}\"\n    end\n\n    # This is a hot method, so avoid respond_to? checks on every invocation\n    if :read.respond_to?(:name)\n      def self.key_to_s(key)\n        case key\n        when String\n          key\n        when Symbol\n          key.name\n        when Gem::URI::HTTP\n          key.to_s\n        else\n          raise ArgumentError, \"Invalid key: #{key.inspect}\"\n        end\n      end","sourceCodeStart":529,"sourceCodeEnd":565,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/bundler/settings.rb#L529-L565","documentation":"Error \"Gem sources must be absolute. You provided '%s'.\" thrown in ruby/rubygems.","triggerScenarios":"Thrown at lib/bundler/settings.rb:547 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"}