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

  1. 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.