{"record":{"id":"7095027f41d276e5","repo":"ruby/rubygems","slug":"unsupported-user-defined-class-klass-in-marshal","errorCode":null,"errorMessage":"Unsupported user-defined class #{klass} in marshal stream @ #{stack.join(\".\")}","messagePattern":"Unsupported user-defined class #(.+?) in marshal stream @ #(.+?)","errorType":"exception","errorClass":"Gem::SafeMarshal::Visitors::ToRuby::UnsupportedError","httpStatus":null,"severity":"error","filePath":"lib/rubygems/safe_marshal/visitors/to_ruby.rb","lineNumber":192,"sourceCode":"      def visit_Gem_SafeMarshal_Elements_Object(o)\n        register_object(resolve_class(o.name).allocate)\n      end\n\n      def visit_Gem_SafeMarshal_Elements_ObjectLink(o)\n        @objects.fetch(o.offset)\n      end\n\n      def visit_Gem_SafeMarshal_Elements_SymbolLink(o)\n        @symbols.fetch(o.offset)\n      end\n\n      SAFE_USER_DEFINED_CLASSES = [::Time, ::Gem::Specification].freeze\n      private_constant :SAFE_USER_DEFINED_CLASSES\n\n      def visit_Gem_SafeMarshal_Elements_UserDefined(o)\n        klass = resolve_class(o.name)\n        unless SAFE_USER_DEFINED_CLASSES.include?(klass)\n          raise UnsupportedError.new(\"Unsupported user-defined class #{klass} in marshal stream\", stack: formatted_stack)\n        end\n        register_object(call_method(klass, :_load, o.binary_string))\n      end\n\n      def visit_Gem_SafeMarshal_Elements_UserMarshal(o)\n        klass = resolve_class(o.name)\n        compat = COMPAT_CLASSES.fetch(klass, nil)\n        idx = @objects.size\n        object = register_object(call_method(compat || klass, :allocate))\n\n        push_stack :data\n        ret = call_method(object, :marshal_load, visit(o.data))\n\n        if compat\n          object = @objects[idx] = ret\n        end\n\n        object","sourceCodeStart":174,"sourceCodeEnd":210,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/rubygems/safe_marshal/visitors/to_ruby.rb#L174-L210","documentation":"Error \"Unsupported user-defined class #{klass} in marshal stream @ #{stack.join(\".\")}\" thrown in ruby/rubygems.","triggerScenarios":"Thrown at lib/rubygems/safe_marshal/visitors/to_ruby.rb:192 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The metadata embeds an unsupported user-defined class; rebuild the gem with a current RubyGems"],"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"}