risingwavelabs/risingwave · error · FeatureNotAvailable
feature is not available based on your license Hint: You…
Error message
feature {feature:?} is not available based on your license
Hint: You may want to set a license key with `ALTER SYSTEM SET license_key = '...';` command. For more information, visit https://go.risingwave.com/premium. What it means
RisingWave's license gate raises FeatureNotAvailable::NotAvailable when code attempts to use a feature (e.g. a premium connector or enterprise capability) that the current license tier does not include. The message names the feature and points to the `ALTER SYSTEM SET license_key` command and the RisingWave premium page.
Solutions
- Set a valid license key: ALTER SYSTEM SET license_key = '...';
- Verify current license status via `SHOW license_key;` / license system view.
- If the key is valid but the feature is excluded, upgrade the license tier with RisingWave sales.
- If using community edition intentionally, avoid enabling the gated feature or find an OSS alternative.
Example fix
-- before CREATE SOURCE ... WITH (connector = 'gcp-pubsub'); -- feature gated -- after ALTER SYSTEM SET license_key = 'xxxx-xxxx'; CREATE SOURCE ... WITH (connector = 'gcp-pubsub');
Defensive patterns
Strategy: try-catch
Validate before calling
Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("SHOW license_key"); if (rs.next() && rs.getString(1).isEmpty()) throw new IllegalStateException("license key not set"); Try / catch
try { enableFeature(); } catch (SQLException e) { if (e.getMessage().contains("not available based on your license")) { /* prompt for license key */ } } Prevention
- Set the license key right after cluster provisioning
- Periodically check license status and expiry
- Know which features your tier covers before enabling them
When it happens
Trigger: Enabling or querying a gated Feature while running with no license key or a license key whose tier excludes the feature — e.g. `ALTER SYSTEM SET` of a premium setting or creating a source using a licensed connector.
Common situations: Deploying the community edition and trying enterprise features; license key expired or tier downgraded; forgot to set license_key after cluster setup.
Related errors
- ALTER STREAMING ENABLE UNALIGNED JOIN is only supported in…
- (dynamic: SnowflakeSink license feature unavailable)
- feature is not available due to license error
- {license Feature::RedisSinkStream unavailable error}
- {0}
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/1e60ebadb6cfae4e.
Report an issue: GitHub.
Appendix: source
Thrown at src/license/src/feature.rs:75
}
/// Get a slice of all features.
pub fn all() -> &'static [Feature] {
Feature::VARIANTS
}
/// Get a slice of all features available as of 2.5 (before we introduce custom tier).
pub(crate) fn all_as_of_2_5() -> &'static [Feature] {
// `IcebergCompaction` was the last feature introduced.
&Feature::all()[..=Feature::IcebergCompaction as usize]
}
}
/// The error type for feature not available due to license.
#[derive(Debug, Error)]
pub enum FeatureNotAvailable {
// TODO(license): refine error message to include tier name & better instructions
#[error(
"feature {feature:?} is not available based on your license\n\n\
Hint: You may want to set a license key with `ALTER SYSTEM SET license_key = '...';` command. For more information, visit https://go.risingwave.com/premium."
)]
NotAvailable { feature: Feature },
#[error("feature {feature:?} is not available due to license error")]
LicenseError {
feature: Feature,
source: LicenseError,
},
}
impl Feature {
/// Check whether the feature is available based on the given license manager.
pub(crate) fn check_available_with(
self,
manager: &LicenseManager,
) -> Result<(), FeatureNotAvailable> {View on GitHub (pinned to 6469eb736d)