risingwavelabs/risingwave · error · SinkError
(dynamic: SnowflakeSink license feature unavailable)
Error message
(dynamic: SnowflakeSink license feature unavailable)
What it means
`SnowflakeSink::validate` first checks that the `SnowflakeSink` licensed feature is available via `risingwave_common::license::Feature::SnowflakeSink.check_available()`. If the deployment lacks the required license entitlement, validation fails before any connection is attempted, wrapping the license error message.
Solutions
- Install or update the RisingWave license key that includes the Snowflake sink feature (`ALTER SYSTEM SET license_key = ...`)
- If Snowflake is not needed, choose a sink connector covered by the current license
- Contact RisingWave sales/support to enable the SnowflakeSink entitlement
Example fix
-- before CREATE SINK s INTO snowflake WITH (connector='snowflake', ...); -- license error -- after ALTER SYSTEM SET license_key = '<key-with-snowflake-feature>'; CREATE SINK s INTO snowflake WITH (connector='snowflake', ...);
Defensive patterns
Strategy: try-catch
Validate before calling
if !risingwave_common::license::Feature::SnowflakeSink.is_available() {
// skip snowflake sink creation or prompt for license
} Try / catch
match snowflake_sink.validate().await {
Err(e) if e.to_string().contains("license") => {
eprintln!("Snowflake sink requires an enterprise license: {e}");
}
Err(e) => return Err(e),
Ok(()) => { /* proceed */ }
} Prevention
- Set the license key before creating enterprise-connector sinks
- Gate sink creation on feature availability
When it happens
Trigger: Creating or validating a Snowflake sink on a RisingWave deployment whose license does not include the SnowflakeSink feature (e.g. trial/basic license without the enterprise feature enabled).
Common situations: Enterprise feature used without setting a license key; expired or downgraded license; running an open-source build where the feature is not enabled.
Related errors
- feature is not available based on your license Hint: You…
- feature is not available based on your license Hint: You…
- {license Feature::RedisSinkStream unavailable error}
- a valid license key is set, but it is currently not…
- a valid license key is set, but it is currently not…
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/4e210b59e76dfd3f.
Report an issue: GitHub.
Appendix: source
Thrown at src/connector/src/sink/snowflake_redshift/snowflake.rs:507
schema,
pk_indices,
is_append_only,
param,
})
}
}
impl Sink for SnowflakeV2Sink {
type LogSinker = CoordinatedLogSinker<SnowflakeSinkWriter>;
const SINK_NAME: &'static str = SNOWFLAKE_SINK_V2;
crate::impl_validate_sink_unknown_fields!();
async fn validate(&self) -> Result<()> {
risingwave_common::license::Feature::SnowflakeSink
.check_available()
.map_err(|e| anyhow::anyhow!(e))?;
if let Some((snowflake_task_ctx, client)) =
self.config.build_snowflake_task_ctx_jdbc_client(
self.is_append_only,
&self.schema,
&self.pk_indices,
)?
{
let client = SnowflakeJniClient::new(client, snowflake_task_ctx);
client.execute_create_table().await?;
client.execute_create_pipe().await?;
}
Ok(())
}
fn support_schema_change() -> bool {
true
}View on GitHub (pinned to 6469eb736d)