ruby/rubygems · error · Gem::Package::TooLongFileName
File "#{name}" has a too long path (should be 256 or less)
Error message
File "#{name}" has a too long path (should be 256 or less) What it means
Error "File "#{name}" has a too long path (should be 256 or less)" thrown in ruby/rubygems.
Source
Thrown at lib/rubygems/package/tar_writer.rb:308
name, prefix = split_name(name)
header = Gem::Package::TarHeader.new name: name, mode: mode,
typeflag: "5", size: 0,
prefix: prefix,
mtime: Gem.source_date_epoch
@io.write header
self
end
##
# Splits +name+ into a name and prefix that can fit in the TarHeader
def split_name(name) # :nodoc:
if name.bytesize > 256
raise Gem::Package::TooLongFileName.new("File \"#{name}\" has a too long path (should be 256 or less)")
end
prefix = ""
if name.bytesize > 100
parts = name.split("/", -1) # parts are never empty here
name = parts.pop # initially empty for names with a trailing slash ("foo/.../bar/")
prefix = parts.join("/") # if empty, then it's impossible to split (parts is empty too)
while !parts.empty? && (prefix.bytesize > 155 || name.empty?)
name = parts.pop + "/" + name
prefix = parts.join("/")
end
if name.bytesize > 100 || prefix.empty?
raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long name (should be 100 or less)")
end
if prefix.bytesize > 155
raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long base path (should be 155 or less)")View on GitHub (pinned to 86cbb817a3)
Solutions
- Shorten the file's full path to 256 characters or fewer and rebuild the gem
When it happens
Trigger: Thrown at lib/rubygems/package/tar_writer.rb:308 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/b98c6ff0db22af74.
Report an issue: GitHub.