quickwit-oss/quickwit · error

Quickwit was compiled without the `kafka` feature

Error message

Quickwit was compiled without the `kafka` feature

What it means

check_source_connectivity validates that a Kafka source can reach its brokers, but the binary was built without the `kafka` cargo feature, so the Kafka source implementation (and its connectivity check) is not compiled in. The function bails immediately when SourceParams::Kafka is matched under `#[cfg(not(feature = "kafka"))]`. This is a compile-time feature gating error, not a runtime network problem.

Source

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

            Ok(())
        }
        #[allow(unused_variables)]
        SourceParams::File(FileSourceParams::Notifications(FileSourceNotification::Sqs(
            sqs_config,
        ))) => {
            #[cfg(not(feature = "sqs"))]
            anyhow::bail!("Quickwit was compiled without the `sqs` feature");

            #[cfg(feature = "sqs")]
            {
                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(())
            }
        }

View on GitHub (pinned to a39730c5cd)

Solutions

  1. Rebuild Quickwit with the kafka feature enabled, e.g. `cargo build --features kafka` (or use a release binary built with it).
  2. If Kafka is not intended, change or remove the Kafka source from the index configuration.
  3. Verify the deployed binary supports Kafka before adding the source (check build features or docs).

Example fix

// before (build without feature)
cargo build --release
// after
cargo build --release --features kafka
Defensive patterns

Strategy: validation

Validate before calling

// Check build features before configuring a Kafka source
if !quickwit_build_has_feature("kafka") {
    return Err(anyhow::anyhow!("binary lacks `kafka` feature; rebuild with --features kafka"));
}

Prevention

When it happens

Trigger: Calling check_source_connectivity (directly or via add_source, update_source, or the test-connectivity REST endpoint) with a source whose SourceParams is Kafka while the running Quickwit binary was compiled without `--features kafka`.

Common situations: Running a slim/distroless Quickwit build or official binary without kafka feature enabled; a custom build omitting the feature; a source config referencing Kafka in an index.yaml applied to a feature-stripped deployment.

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/e141bdb000b056bb. Report an issue: GitHub.