ruby/rubygems · error · Gem::InstallError

#{spec.platform} is an invalid platform

Error message

#{spec.platform} is an invalid platform

What it means

Error "#{spec.platform} is an invalid platform" thrown in ruby/rubygems.

Source

Thrown at lib/rubygems/installer.rb:701

  def verify_gem_home # :nodoc:
    FileUtils.mkdir_p gem_home, mode: options[:dir_mode] && 0o755
  end

  def verify_spec
    unless Gem::Specification::VALID_NAME_PATTERN.match?(spec.name)
      raise Gem::InstallError, "#{spec} has an invalid name"
    end

    if spec.raw_require_paths.any? {|path| path =~ /\R/ }
      raise Gem::InstallError, "#{spec} has an invalid require_paths"
    end

    if spec.extensions.any? {|ext| ext =~ /\R/ }
      raise Gem::InstallError, "#{spec} has an invalid extensions"
    end

    unless /\A[\w.-]+\z/.match?(spec.platform.to_s)
      raise Gem::InstallError, "#{spec.platform} is an invalid platform"
    end

    unless /\A\d+\z/.match?(spec.specification_version.to_s)
      raise Gem::InstallError, "#{spec} has an invalid specification_version"
    end

    if spec.dependencies.any? {|dep| dep.type != :runtime && dep.type != :development }
      raise Gem::InstallError, "#{spec} has an invalid dependencies"
    end

    if spec.dependencies.any? {|dep| dep.name =~ /(?:\R|[<>])/ }
      raise Gem::InstallError, "#{spec} has an invalid dependencies"
    end

    if spec.executables.any? {|name| !name.is_a?(String) || name != File.basename(name) || /\A\.\.?\z|\R/.match?(name) }
      raise Gem::InstallError, "#{spec} has an invalid executable"
    end

View on GitHub (pinned to 86cbb817a3)

Solutions

  1. Set `spec.platform` to a valid Gem::Platform value such as 'ruby' or Gem::Platform::RUBY

When it happens

Trigger: Thrown at lib/rubygems/installer.rb:701 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/95ee5c06cd9e5467. Report an issue: GitHub.