ruby/rubygems · error · Gem::Package::TooLongFileName

File "#{prefix}/#{name}" has a too long base path (should be

Error message

File "#{prefix}/#{name}" has a too long base path (should be 155 or less)

What it means

Error "File "#{prefix}/#{name}" has a too long base path (should be 155 or less)" thrown in ruby/rubygems.

Source

Thrown at lib/rubygems/package/tar_writer.rb:326

      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)")
      end
    end

    [name, prefix]
  end
end

View on GitHub (pinned to 86cbb817a3)

Solutions

  1. Shorten the directory prefix to 155 characters or fewer and rebuild the gem

When it happens

Trigger: Thrown at lib/rubygems/package/tar_writer.rb:326 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/89bc7d2e470d8a41. Report an issue: GitHub.