{"record":{"id":"d35e0df89ad796c0","repo":"quickwit-oss/quickwit","slug":"quickwit-was-compiled-without-the-kinesis-featur","errorCode":null,"errorMessage":"Quickwit was compiled without the `kinesis` feature","messagePattern":"Quickwit was compiled without the `kinesis` feature","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"quickwit/quickwit-indexing/src/source/mod.rs","lineNumber":477,"sourceCode":"                queue_sources::sqs_queue::check_connectivity(&sqs_config.queue_url).await?;\n                Ok(())\n            }\n        }\n        #[allow(unused_variables)]\n        SourceParams::Kafka(params) => {\n            #[cfg(not(feature = \"kafka\"))]\n            anyhow::bail!(\"Quickwit was compiled without the `kafka` feature\");\n\n            #[cfg(feature = \"kafka\")]\n            {\n                kafka_source::check_connectivity(params.clone()).await?;\n                Ok(())\n            }\n        }\n        #[allow(unused_variables)]\n        SourceParams::Kinesis(params) => {\n            #[cfg(not(feature = \"kinesis\"))]\n            anyhow::bail!(\"Quickwit was compiled without the `kinesis` feature\");\n\n            #[cfg(feature = \"kinesis\")]\n            {\n                kinesis::check_connectivity(params.clone()).await?;\n                Ok(())\n            }\n        }\n        #[allow(unused_variables)]\n        SourceParams::Pulsar(params) => {\n            #[cfg(not(feature = \"pulsar\"))]\n            anyhow::bail!(\"Quickwit was compiled without the `pulsar` feature\");\n\n            #[cfg(feature = \"pulsar\")]\n            {\n                pulsar_source::check_connectivity(params).await?;\n                Ok(())\n            }\n        }","sourceCodeStart":459,"sourceCodeEnd":495,"githubUrl":"https://github.com/quickwit-oss/quickwit/blob/a39730c5cdcd1a4fe798403737ae293999ea21f8/quickwit/quickwit-indexing/src/source/mod.rs#L459-L495","documentation":"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.","triggerScenarios":"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`.","commonSituations":"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.","solutions":["Rebuild/redeploy Quickwit with `--features kinesis` enabled.","Remove the Kinesis source from the index configuration if Kinesis ingestion is not needed.","Validate source types against build features during deployment/config linting before applying index configs."],"exampleFix":"// before\ncargo build --release\n// after\ncargo build --release --features kinesis","handlingStrategy":"validation","validationCode":"// Verify Kinesis support before applying a kinesis source config\nif !quickwit_build_has_feature(\"kinesis\") {\n    return Err(anyhow::anyhow!(\"binary lacks `kinesis` feature; rebuild with --features kinesis\"));\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Document the feature set of each deployed binary variant.","Run add_source/test-connectivity in a staging environment with the same build as production.","Avoid mixing full-featured and trimmed builds in the same cluster."],"tags":["kinesis","compile-time-feature","source-connectivity","rust"],"backgroundTag":"missing-optional-dependency","analyzedSha":"a39730c5cdcd1a4fe798403737ae293999ea21f8","analyzedAt":"2026-09-08T13:19:37.784Z","contentChangedAt":"2026-09-08T13:19:37.784Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}