ruby/rubygems · error · Gem::RubyVersionMismatch

Your Ruby engine is #{Gem.ruby_engine}, but your #{gem_deps_

Error message

Your Ruby engine is #{Gem.ruby_engine}, but your #{gem_deps_file} requires #{engine}

What it means

Error "Your Ruby engine is #{Gem.ruby_engine}, but your #{gem_deps_file} requires #{engine}" thrown in ruby/rubygems.

Source

Thrown at lib/rubygems/request_set/gem_dependency_api.rb:804

    raise ArgumentError,
          "You must specify engine_version along with the Ruby engine" if
            engine && !engine_version

    return true if @installing

    unless version == RUBY_VERSION
      message = "Your Ruby version is #{RUBY_VERSION}, " \
                "but your #{gem_deps_file} requires #{version}"

      raise Gem::RubyVersionMismatch, message
    end

    if engine && engine != Gem.ruby_engine
      message = "Your Ruby engine is #{Gem.ruby_engine}, " \
                "but your #{gem_deps_file} requires #{engine}"

      raise Gem::RubyVersionMismatch, message
    end

    if engine_version
      if engine_version != RUBY_ENGINE_VERSION
        message =
          "Your Ruby engine version is #{Gem.ruby_engine} #{RUBY_ENGINE_VERSION}, " \
          "but your #{gem_deps_file} requires #{engine} #{engine_version}"

        raise Gem::RubyVersionMismatch, message
      end
    end

    true
  end

  ##
  # :category: Gem Dependencies DSL
  #

View on GitHub (pinned to 86cbb817a3)

Solutions

  1. Run with the Ruby engine required by the dependencies file (e.g. jruby, truffleruby)
  2. Or change the file's engine requirement

When it happens

Trigger: Thrown at lib/rubygems/request_set/gem_dependency_api.rb:804 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/8dbedadb689c6543. Report an issue: GitHub.