{"record":{"id":"b1501117f116b5c7","repo":"ruby/rubygems","slug":"duplicate-files-in-the-package-duplicates-map","errorCode":null,"errorMessage":"duplicate files in the package: (#{duplicates.map(&:inspect).join(\", \")})","messagePattern":"duplicate files in the package: \\(#(.+?)\\)","errorType":"exception","errorClass":"Gem::Security::Exception","httpStatus":null,"severity":"error","filePath":"lib/rubygems/package.rb","lineNumber":734,"sourceCode":"  ##\n  # Verifies the files of the +gem+\n\n  def verify_files(gem)\n    gem.each do |entry|\n      verify_entry entry\n    end\n\n    unless @spec\n      raise Gem::Package::FormatError.new \"package metadata is missing\", @gem\n    end\n\n    unless @files.include? \"data.tar.gz\"\n      raise Gem::Package::FormatError.new \\\n        \"package content (data.tar.gz) is missing\", @gem\n    end\n\n    if (duplicates = @files.group_by {|f| f }.select {|_k,v| v.size > 1 }.map(&:first)) && duplicates.any?\n      raise Gem::Security::Exception, \"duplicate files in the package: (#{duplicates.map(&:inspect).join(\", \")})\"\n    end\n  end\n\n  if RUBY_ENGINE == \"truffleruby\"\n    def copy_stream(src, dst, size) # :nodoc:\n      dst.write src.read(size)\n    end\n  else\n    def copy_stream(src, dst, size) # :nodoc:\n      IO.copy_stream(src, dst, size)\n    end\n  end\n\n  def limit_read(io, name, limit)\n    bytes = io.read(limit + 1)\n    raise Gem::Package::FormatError, \"#{name} is too big (over #{limit} bytes)\" if bytes.size > limit\n    bytes\n  end","sourceCodeStart":716,"sourceCodeEnd":752,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/rubygems/package.rb#L716-L752","documentation":"Error \"duplicate files in the package: (#{duplicates.map(&:inspect).join(\", \")})\" thrown in ruby/rubygems.","triggerScenarios":"Thrown at lib/rubygems/package.rb:734 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove duplicate entries from the gemspec `spec.files` list and rebuild 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"}