Skip to content

Precompiled x64-mingw-ucrt gem fails to load on Windows: LoadError: cannot load such file -- wasmtime/wasmtime_rb #581

@andrew2net

Description

@andrew2net

Summary

The precompiled x64-mingw-ucrt gem (v41.0.1) installs successfully on Windows but fails at runtime when require "wasmtime" is called.

Environment

  • OS: Windows Server 2022 (windows-latest on GitHub Actions)
  • Ruby: 3.2, 3.4, and 4.0 (all via RubyInstaller2 UCRT)
  • Gem version: wasmtime 41.0.1 (x64-mingw-ucrt)
  • Install method: Bundler (bundle install)

Error

Failure/Error: require "wasmtime"

LoadError:
  cannot load such file -- wasmtime/wasmtime_rb
# ./vendor/bundle/ruby/3.4.0/gems/wasmtime-41.0.1-x64-mingw-ucrt/lib/wasmtime.rb:13:in '<top (required)>'

The loader in lib/wasmtime.rb tries wasmtime/3.4/wasmtime_rb first, then falls back to wasmtime/wasmtime_rb — both fail.

Reproduction

Any gem depending on wasmtime ~> 41.0 installed via Bundler on Windows with RubyInstaller2 UCRT will hit this. Our CI run demonstrating the failure: https://github.com/relaton/relaton-un/actions/runs/23171604086

Observation

The build-gems.yml workflow only smoke-tests precompiled gems when matrix.ruby-platform == 'x86_64-linux':

- name: Smoke gem install
  if: matrix.ruby-platform == 'x86_64-linux' # GitHub actions architecture
  run: bundle install && bundle exec rake pkg:${{ matrix.ruby-platform }}:test

The x64-mingw-ucrt variant is cross-compiled but never tested on an actual Windows runner, so this breakage isn't caught in CI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions