ruby/rubygems · error · Gem::SafeMarshal::Visitors::ToRuby::FormatError
Unexpected sign for Bignum #{b.sign.chr.inspect} (#{b.sign})
Error message
Unexpected sign for Bignum #{b.sign.chr.inspect} (#{b.sign}) What it means
Error "Unexpected sign for Bignum #{b.sign.chr.inspect} (#{b.sign})" thrown in ruby/rubygems.
Source
Thrown at lib/rubygems/safe_marshal/visitors/to_ruby.rb:260
else
f.string.to_f
end
)
end
def visit_Gem_SafeMarshal_Elements_Bignum(b)
result = 0
b.data.each_byte.with_index do |byte, exp|
result += (byte * 2**(exp * 8))
end
case b.sign
when 43 # ?+
result
when 45 # ?-
-result
else
raise FormatError, "Unexpected sign for Bignum #{b.sign.chr.inspect} (#{b.sign})"
end
end
def visit_Gem_SafeMarshal_Elements_UserClass(r)
if resolve_class(r.name) == ::Hash && r.wrapped_object.is_a?(Elements::Hash)
hash = register_object({}.compare_by_identity)
o = r.wrapped_object
o.pairs.each_with_index do |(k, v), i|
push_stack i
k = visit(k)
push_stack k
hash[k] = visit(v)
end
if o.is_a?(Elements::HashWithDefaultValue)
push_stack :defaultView on GitHub (pinned to 86cbb817a3)
Solutions
- The metadata bignum is malformed; the file is corrupt — re-download the gem
When it happens
Trigger: Thrown at lib/rubygems/safe_marshal/visitors/to_ruby.rb:260 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruby/rubygems@86cbb817a3 (2026-08-23).
Data as JSON: /api/errors/230f2c532c46772d.
Report an issue: GitHub.