quickwit-oss/quickwit · error

lambda support is statically disabled, but enabled in config

Error message

lambda support is statically disabled, but enabled in configuration

What it means

Quickwit can delegate leaf search to AWS Lambda when the searcher config sets a lambda invoker, but the binary must be built with the `lambda` cargo feature. When the configuration enables lambda support while the binary was compiled without that feature, serve_quickwit bails with 'lambda support is statically disabled, but enabled in configuration' rather than silently ignoring the setting.

Source

Thrown at quickwit/quickwit-serve/src/lib.rs:750

    // Initialize Lambda invoker if enabled and searcher service is running
    let searcher_context = if node_config.is_service_enabled(QuickwitService::Searcher) {
        if let Some(lambda_config) = &node_config.searcher_config.lambda {
            #[cfg(feature = "lambda")]
            {
                info!("initializing AWS Lambda invoker for search");
                warn!("offloading to lambda is EXPERIMENTAL. Use at your own risk");
                let invoker =
                    quickwit_lambda_client::try_get_or_deploy_invoker(lambda_config).await?;
                Arc::new(SearcherContext::new(
                    node_config.searcher_config.clone(),
                    search_split_cache_opt,
                    Some(invoker),
                ))
            }
            #[cfg(not(feature = "lambda"))]
            {
                let _ = lambda_config;
                bail!("lambda support is statically disabled, but enabled in configuration");
            }
        } else {
            Arc::new(SearcherContext::new_without_invoker(
                node_config.searcher_config.clone(),
                search_split_cache_opt,
            ))
        }
    } else {
        Arc::new(SearcherContext::new_without_invoker(
            node_config.searcher_config.clone(),
            search_split_cache_opt,
        ))
    };

    let read_replica_metastore_client_opt = local_metastore_server
        .resolve_read_only_client(&cluster, &node_config)
        .await?;

View on GitHub (pinned to a39730c5cd)

Solutions

  1. Remove/disable the lambda invoker settings under the searcher configuration so the standard binary can start.
  2. Or build/obtain a Quickwit binary compiled with the `lambda` cargo feature (cargo build --features lambda).
  3. If you intended local (non-Lambda) searching only, delete the leftover lambda section from quickwit.yaml.
  4. Check for environment-driven config overrides injecting lambda settings unexpectedly (env var config overlays).

Example fix

// before (searcher config in quickwit.yaml, standard build)
searcher:
  lambda:
    function_name: quickwit-leaf-search
// after
searcher: {}
Defensive patterns

Strategy: validation

Validate before calling

// Guard config before launching a standard (non-lambda) quickwit binary
const cfg = loadQuickwitConfig('quickwit.yaml');
if (cfg.searcher?.lambda) {
  throw new Error('lambda invoker configured but binary lacks the lambda feature; remove searcher.lambda or use a lambda-enabled build');
}

Type guard

function lambdaConfigured(config) {
  return Boolean(config?.searcher?.lambda);
}

Try / catch

try {
  await serveQuickwit(config);
} catch (e) {
  if (e.message.includes('lambda support is statically disabled')) {
    console.error('Either drop searcher.lambda from config or deploy a build compiled with --features lambda.');
  }
  throw e;
}

Prevention

When it happens

Trigger: Running an official/standard quickwit binary (built without --features lambda) with searcher_config.lambda configuration present (e.g. lambda invoker settings set), or a config file left over from a lambda-enabled custom build used with a non-lambda build.

Common situations: Deploying the default Quickwit distribution after copying a lambda-enabled node's config; enabling lambda search on a platform/build that does not include the feature (the quickwit-lambda-server/client crates are feature-gated); stale environment config after downgrading binaries.

Related errors


AI-assisted analysis of quickwit-oss/quickwit@a39730c5cd (2026-09-08). Data as JSON: /api/errors/a7984bfb78a950a8. Report an issue: GitHub.