windmill-labs/windmill · error

Ruby is not available because the feature is not enabled

Error message

Ruby is not available because the feature is not enabled

What it means

Compile-time cfg-gated stub: the worker was started without the `ruby` cargo feature, but a job whose ScriptLang is Ruby was routed to this arm. The message is the explanatory error for the not(feature = "ruby") build, meaning this server binary cannot execute Ruby jobs at all.

Source

Thrown at backend/windmill-worker/src/worker.rs:6792

                    conn,
                    client,
                    parent_runnable_path,
                    inner_content: &code,
                    job_dir,
                    requirements_o: lock.as_ref(),
                    shared_mount: &shared_mount,
                    base_internal_url,
                    worker_name,
                    envs,
                    occupancy_metrics,
                    modules: modules.as_ref(),
                }))
                .await
            }
        }
        ScriptLang::Ruby => {
            #[cfg(not(feature = "ruby"))]
            return Err(anyhow::anyhow!(
                "Ruby is not available because the feature is not enabled"
            )
            .into());

            #[cfg(feature = "ruby")]
            {
                if run_inline {
                    return Err(Error::internal_err(
                        "Inline execution is not yet supported for this language".to_string(),
                    ));
                }
                Box::pin(handle_ruby_job(JobHandlerInputRuby {
                    mem_peak,
                    canceled_by,
                    job,
                    conn,
                    client,
                    parent_runnable_path,

View on GitHub (pinned to e474e8803c)

Solutions

  1. Rebuild the worker with `--features ruby`
  2. Route ruby jobs to a worker/image built with Ruby support
  3. Convert the script to a language enabled in your build

Example fix

// before
cargo run --features quickjs
// after
cargo run --features quickjs,ruby
Defensive patterns

Strategy: fallback

Try / catch

try {
  await runScript("ruby", code);
} catch (e) {
  if (String(e).includes("Ruby is not available")) {
    // rebuild with --features ruby or reroute to a ruby-enabled worker
  }
}

Prevention

When it happens

Trigger: Running a script with language `ruby` on a worker compiled without `--features ruby` (e.g. baseline dev build `--features quickjs` or a slim image).

Common situations: Self-hosted minimal builds, dev environments using the fast default feature set, Ruby scripts landing on workers that lack the feature.

Related errors


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/a141d89764b4dd61. Report an issue: GitHub.