{"record":{"id":"02e8f3acf387c74c","repo":"ruby/rubygems","slug":"expected-2-ints","errorCode":null,"errorMessage":"Expected 2 ints","messagePattern":"Expected 2 ints","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/rubygems/safe_marshal/visitors/to_ruby.rb","lineNumber":304,"sourceCode":"      end\n\n      def resolve_class(n)\n        @class_cache[n] ||= begin\n          to_s = resolve_symbol_name(n)\n          raise UnpermittedClassError.new(name: to_s, stack: formatted_stack) unless @permitted_classes.include?(to_s)\n          visit_symbol_type(n)\n          begin\n            ::Object.const_get(to_s)\n          rescue NameError\n            raise ArgumentError, \"Undefined class #{to_s.inspect}\"\n          end\n        end\n      end\n\n      class RationalCompat\n        def marshal_load(s)\n          num, den = s\n          raise ArgumentError, \"Expected 2 ints\" unless s.size == 2 && num.is_a?(Integer) && den.is_a?(Integer)\n          Rational(num, den)\n        end\n      end\n      private_constant :RationalCompat\n\n      COMPAT_CLASSES = {}.tap do |h|\n        h[Rational] = RationalCompat\n      end.compare_by_identity.freeze\n      private_constant :COMPAT_CLASSES\n\n      def resolve_ivar(klass, name)\n        to_s = resolve_symbol_name(name)\n\n        raise UnpermittedIvarError.new(symbol: to_s, klass: klass, stack: formatted_stack) unless @permitted_ivars.fetch(klass.name, [].freeze).include?(to_s)\n\n        visit_symbol_type(name)\n      end\n","sourceCodeStart":286,"sourceCodeEnd":322,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/rubygems/safe_marshal/visitors/to_ruby.rb#L286-L322","documentation":"Error \"Expected 2 ints\" thrown in ruby/rubygems.","triggerScenarios":"Thrown at lib/rubygems/safe_marshal/visitors/to_ruby.rb:304 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The marshal data is corrupt (rational/complex structure incomplete); re-download the gem"],"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"}