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

  1. Set a valid license key: ALTER SYSTEM SET license_key = '...';
  2. Verify current license status via `SHOW license_key;` / license system view.
  3. If the key is valid but the feature is excluded, upgrade the license tier with RisingWave sales.
  4. 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

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


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)