{"record":{"id":"2d044a3503bc2217","repo":"faker-ruby/faker","slug":"state-code-must-be-in-a-range-of-02-to-38-or-98","errorCode":null,"errorMessage":"state code must be in a range of 02 to 38 or 98","messagePattern":"state code must be in a range of 02 to 38 or 98","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/faker/default/company.rb","lineNumber":483,"sourceCode":"      end\n\n      ##\n      # Get a random Indian Goods and Services Tax (GST) number.\n      # For more on Indian tax number here:\n      # https://simple.wikipedia.org/wiki/GSTIN\n      # @params state code [String] Any state code.\n      #\n      # @return [String]\n      # @example\n      #   Faker::Company.indian_gst_number #=> \"15VQPNZ2126J2ZU\"\n      #   Faker::Company.indian_gst_number(state_code: \"22\") #=> \"22ZVWEY6632K0ZN\"\n      #\n      # @faker.version 3.2.1\n      def indian_gst_number(state_code: nil)\n        # Check if state code is valid\n        state_code_ranges = [('02'..'38'), ['98']]\n        if state_code && !(state_code_ranges[0].include?(state_code) || state_code == '98')\n          raise ArgumentError, 'state code must be in a range of 02 to 38 or 98'\n        end\n\n        PositionalGenerator.new(:string) do |gen|\n          # Generate a state code if not given\n          if state_code\n            gen.lit(state_code, name: :state_code_param)\n          else\n            gen.letter(name: :state_code_param, length: 1, ranges: state_code_ranges)\n          end\n\n          # Construct taxpayer number\n          gen.group(name: :taxpayer_number) do |g_|\n            g_.letter(length: 3, ranges: ['A'..'Z'])\n            g_.letter(length: 1, ranges: [%w[A B C F G H L J P T K]])\n            g_.letter(length: 1, ranges: ['A'..'Z'])\n            g_.int(length: 4, ranges: [0..9999])\n            g_.letter(length: 1, ranges: ['A'..'Z'])\n          end","sourceCodeStart":465,"sourceCodeEnd":501,"githubUrl":"https://github.com/faker-ruby/faker/blob/cca4184947e09fdd02afb8b89d25a9c8ebc7274e/lib/faker/default/company.rb#L465-L501","documentation":"Error \"state code must be in a range of 02 to 38 or 98\" thrown in faker-ruby/faker.","triggerScenarios":"Thrown at lib/faker/default/company.rb:483 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":"cca4184947e09fdd02afb8b89d25a9c8ebc7274e","analyzedAt":"2026-08-21T16:25:39.145Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}