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
- Remove/disable the lambda invoker settings under the searcher configuration so the standard binary can start.
- Or build/obtain a Quickwit binary compiled with the `lambda` cargo feature (cargo build --features lambda).
- If you intended local (non-Lambda) searching only, delete the leftover lambda section from quickwit.yaml.
- 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
- Keep per-build config profiles: lambda-enabled config only with lambda-enabled binaries.
- Document the cargo `lambda` feature requirement wherever the lambda searcher config is documented.
- Scrub lambda sections when copying configs between environments.
- Pin deployment manifests so a lambda-enabled config cannot be applied to a standard image.
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
- lambda memory must be at least 1GB
- unknown URI protocol `{protocol}`
- GCP PubSub subscription `{subscription_name}` does not exist
- topic `{}` does not exist
- failed to parse Kafka client log level. value `{}` is not su
AI-assisted analysis of quickwit-oss/quickwit@a39730c5cd (2026-09-08).
Data as JSON: /api/errors/a7984bfb78a950a8.
Report an issue: GitHub.