quickwit-oss/quickwit · error

Quickwit was compiled without the `kinesis` feature

Error message

Quickwit was compiled without the `kinesis` feature

What it means

The same feature-gating pattern as Kafka: when SourceParams::Kinesis is matched and the binary was compiled without the `kinesis` cargo feature, check_source_connectivity bails because the Kinesis source code was not built in. The Kinesis connectivity check simply does not exist in this binary.

Source

Thrown at quickwit/quickwit-indexing/src/source/mod.rs:477

                queue_sources::sqs_queue::check_connectivity(&sqs_config.queue_url).await?;
                Ok(())
            }
        }
        #[allow(unused_variables)]
        SourceParams::Kafka(params) => {
            #[cfg(not(feature = "kafka"))]
            anyhow::bail!("Quickwit was compiled without the `kafka` feature");

            #[cfg(feature = "kafka")]
            {
                kafka_source::check_connectivity(params.clone()).await?;
                Ok(())
            }
        }
        #[allow(unused_variables)]
        SourceParams::Kinesis(params) => {
            #[cfg(not(feature = "kinesis"))]
            anyhow::bail!("Quickwit was compiled without the `kinesis` feature");

            #[cfg(feature = "kinesis")]
            {
                kinesis::check_connectivity(params.clone()).await?;
                Ok(())
            }
        }
        #[allow(unused_variables)]
        SourceParams::Pulsar(params) => {
            #[cfg(not(feature = "pulsar"))]
            anyhow::bail!("Quickwit was compiled without the `pulsar` feature");

            #[cfg(feature = "pulsar")]
            {
                pulsar_source::check_connectivity(params).await?;
                Ok(())
            }
        }

View on GitHub (pinned to a39730c5cd)

Solutions

  1. Rebuild/redeploy Quickwit with `--features kinesis` enabled.
  2. Remove the Kinesis source from the index configuration if Kinesis ingestion is not needed.
  3. Validate source types against build features during deployment/config linting before applying index configs.

Example fix

// before
cargo build --release
// after
cargo build --release --features kinesis
Defensive patterns

Strategy: validation

Validate before calling

// Verify Kinesis support before applying a kinesis source config
if !quickwit_build_has_feature("kinesis") {
    return Err(anyhow::anyhow!("binary lacks `kinesis` feature; rebuild with --features kinesis"));
}

Prevention

When it happens

Trigger: Calling check_source_connectivity (via run_index_checklist, add_source, update_source, or the REST test-connectivity endpoint) on a Kinesis source in a binary built without `--features kinesis`.

Common situations: Deploying a Quickwit build without the kinesis feature (often excluded to reduce binary size/AWS SDK deps) while the index config still declares a kinesis source; switching from a full build to a trimmed build.

Understand the failure class

Background: "X is not installed. Please install it with pip install Y": missing optional dependency errors — ImportError/ValueError raised when a library's optional extra was never installed — this error's family across 22 libraries.

Related errors


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