{"record":{"id":"55601f457e59da83","repo":"risingwavelabs/risingwave","slug":"license-feature-check-failed-bigquerysink-not-ava","errorCode":null,"errorMessage":"license feature check failed (BigQuerySink not available): wrapped error from risingwave_common::license::Feature::check_available","messagePattern":"license feature check failed \\(BigQuerySink not available\\): wrapped error from risingwave_common::license::Feature::check_available","errorType":"exception","errorClass":"SinkError::BigQuery","httpStatus":null,"severity":"error","filePath":"src/connector/src/sink/big_query.rs","lineNumber":555,"sourceCode":"    async fn new_log_sinker(&self, _writer_param: SinkWriterParam) -> Result<Self::LogSinker> {\n        let (writer, resp_stream) = BigQuerySinkWriter::new(\n            self.config.clone(),\n            self.schema.clone(),\n            self.pk_indices.clone(),\n            self.is_append_only,\n        )\n        .await?;\n        Ok(BigQueryLogSinker::new(\n            writer,\n            resp_stream,\n            BIGQUERY_SEND_FUTURE_BUFFER_MAX_SIZE,\n        ))\n    }\n\n    async fn validate(&self) -> Result<()> {\n        risingwave_common::license::Feature::BigQuerySink\n            .check_available()\n            .map_err(|e| anyhow::anyhow!(e))?;\n        if !self.is_append_only && self.pk_indices.is_empty() {\n            return Err(SinkError::Config(anyhow!(\n                \"Primary key not defined for upsert bigquery sink (please define in `primary_key` field)\"\n            )));\n        }\n        let client = self\n            .config\n            .common\n            .build_client(&self.config.aws_auth_props)\n            .await?;\n        let BigQueryCommon {\n            project: project_id,\n            dataset: dataset_id,\n            table: table_id,\n            ..\n        } = &self.config.common;\n\n        if self.config.common.auto_create {","sourceCodeStart":537,"sourceCodeEnd":573,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/sink/big_query.rs#L537-L573","documentation":"The BigQuery sink's `validate` calls `risingwave_common::license::Feature::BigQuerySink.check_available()`, which fails when the current license does not include the BigQuery sink feature. The underlying error is wrapped with `anyhow`, producing this message. BigQuery sink is an enterprise-licensed feature, so unlicensed deployments cannot use it.","triggerScenarios":"Creating a BigQuery sink on a RisingWave deployment whose license (or lack thereof) does not grant the BigQuerySink feature — e.g. free tier without a license key, or an expired/feature-limited license.","commonSituations":"Open-source or free-tier deployments following BigQuery sink docs without applying an enterprise license key; licenses that expired or were downgraded.","solutions":["Apply a RisingWave license key that includes the BigQuery sink feature (ALTER SYSTEM SET license_key = '...').","Check the current license with SHOW LICENSE / the license info functions to verify feature availability and expiry.","Contact RisingWave sales/support to obtain or upgrade the license covering BigQuerySink.","Use a differently licensed sink (e.g. one available in your tier) if a license cannot be obtained."],"exampleFix":"-- before: no license key set, sink creation fails\nCREATE SINK bq_sink FROM mv WITH (...) TYPE bigquery;\n\n-- after: apply license first\nALTER SYSTEM SET license_key = '<your-license-key>';\nCREATE SINK bq_sink FROM mv WITH (...) TYPE bigquery;","handlingStrategy":"validation","validationCode":"-- Verify the BigQuery sink feature is licensed before creating the sink:\nSHOW PARAMETERS license_key;\nSELECT * FROM rw_catalog.rw_license_info; -- check expiry/features if exposed\n-- Or attempt feature check:\n-- feature_available := license includes BigQuerySink","typeGuard":null,"tryCatchPattern":"// SQL-level: catch feature failure on sink creation\n-- In driver code:\ntry {\n  await client.query('CREATE SINK ... TYPE bigquery ...');\n} catch (e) {\n  if (e.message.includes('license feature check failed')) {\n    // apply/upgrade license or fall back to another sink type\n  }\n  throw e;\n}","preventionTips":["Apply and monitor license keys before deploying enterprise-feature sinks.","Track license expiry; renew before it lapses in production.","Verify feature availability with SHOW LICENSE in pre-deployment checks."],"tags":["bigquery","sink","license","feature-gating"],"backgroundTag":"feature-not-enabled","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}