windmill-labs/windmill · error

Nu is not available because the feature is not enabled

Error message

Nu is not available because the feature is not enabled

What it means

Windmill compiles Nu script execution behind the optional `nu` cargo feature. When a job for a Nu script is dispatched to a worker binary built without that feature, the executor immediately fails with this message. The binary literally has no Nu runtime linked, so the job can never run on it.

Source

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

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

            #[cfg(feature = "nu")]
            {
                if run_inline {
                    return Err(Error::internal_err(
                        "Inline execution is not yet supported for this language".to_string(),
                    ));
                }
                Box::pin(handle_nu_job(JobHandlerInputNu {
                    mem_peak,
                    canceled_by,
                    job,
                    conn,
                    client,
                    parent_runnable_path,
                    inner_content: &code,
                    job_dir,

View on GitHub (pinned to e474e8803c)

Solutions

  1. Rebuild the backend/worker with `--features nu` (plus your other features)
  2. Route nu-tagged jobs to a worker/image that includes the nu feature
  3. Change the script's language if Nu is not actually needed

Example fix

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

Strategy: fallback

Validate before calling

// check which features your worker exposes before running nu jobs
curl -s $WORKER_URL/api/workers/list | jq '.[].tags'

Try / catch

try {
  await runScript("nu", code);
} catch (e) {
  if (String(e).includes("Nu is not available")) {
    // rebuild worker with --features nu or route to a nu-capable worker
  }
}

Prevention

When it happens

Trigger: Running a script with language `nu` on a worker built without `--features nu` (e.g. default `cargo run` with only `quickjs`, or an official image variant that excludes Nu).

Common situations: Self-hosted builds using minimal feature sets, dev backends started with the default fast-build features, switching the script language to nu in a workspace served by a feature-restricted worker.

Related errors


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