{"record":{"id":"684e7aa47cb4917d","repo":"ytti/oxidized","slug":"if-using-pagination-pagination-key-name-setting","errorCode":null,"errorMessage":"if using pagination, 'pagination_key_name' setting must be set","messagePattern":"if using pagination, 'pagination_key_name' setting must be set","errorType":"exception","errorClass":"Oxidized::OxidizedError","httpStatus":null,"severity":"error","filePath":"lib/oxidized/source/http.rb","lineNumber":48,"sourceCode":"      require \"uri\"\n      require \"json\"\n\n      def load(node_want = nil)\n        uri = URI.parse(@cfg.url)\n        data = JSON.parse(read_http(uri, node_want))\n        node_data = data\n        node_data = string_navigate_object(data, @cfg.hosts_location) if @cfg.hosts_location?\n        node_data = pagination(data, node_want) if @cfg.pagination?\n\n        transform_json(node_data)\n      end\n\n      private\n\n      def pagination(data, node_want)\n        node_data = []\n        unless @cfg.pagination_key_name?\n          raise Oxidized::OxidizedError,\n                \"if using pagination, 'pagination_key_name' setting must be set\"\n        end\n\n        next_key = @cfg.pagination_key_name\n        # Process the initial batch first\n        node_data += string_navigate_object(data, @cfg.hosts_location) if @cfg.hosts_location?\n\n        # Now loop only for subsequent pages\n        loop do\n          # Check for the next URL *before* trying to fetch/add\n          break if data[next_key].nil?\n\n          # Fetch the next page\n          new_uri = URI.parse(data[next_key]) # Safe to parse now\n          data = JSON.parse(read_http(new_uri, node_want))\n\n          # Add nodes from the *newly fetched* batch\n          node_data += string_navigate_object(data, @cfg.hosts_location) if @cfg.hosts_location?","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/ytti/oxidized/blob/687ed4262d9d21e54662e872e2383386d8498f7b/lib/oxidized/source/http.rb#L30-L66","documentation":"Error \"if using pagination, 'pagination_key_name' setting must be set\" thrown in ytti/oxidized.","triggerScenarios":"Thrown at lib/oxidized/source/http.rb:48 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":"687ed4262d9d21e54662e872e2383386d8498f7b","analyzedAt":"2026-08-23T11:19:42.084Z","schemaVersion":2},"datasetVersion":"2026-08-23T16:17:53.355Z"}