risingwavelabs/risingwave · error · anyhow::Error

only Hummock state store is supported in risectl

Error message

only Hummock state store is supported in risectl

What it means

create_hummock_store_with_metrics inspects the cluster's configured state store engine and builds a Hummock store only when the engine is Hummock. If the state store string is anything else (e.g. in-memory or an unrecognized value), risectl refuses, since its tooling only understands Hummock state stores.

Source

Thrown at src/ctl/src/common/hummock_service.rs:163

            )),
            metrics.state_store_metrics.clone(),
            metrics.object_store_metrics.clone(),
            metrics.storage_metrics.clone(),
            metrics.compactor_metrics.clone(),
            None,
            self.use_new_object_prefix_strategy,
        )
        .await?;

        if let Some(hummock_state_store) = state_store_impl.as_hummock() {
            Ok((
                hummock_state_store
                    .clone()
                    .monitored(metrics.storage_metrics.clone()),
                metrics,
            ))
        } else {
            Err(anyhow!("only Hummock state store is supported in risectl"))
        }
    }

    pub async fn create_sstable_store(
        &self,
        use_new_object_prefix_strategy: bool,
    ) -> Result<Arc<SstableStore>> {
        let object_store = build_remote_object_store(
            self.hummock_url.strip_prefix("hummock+").unwrap(),
            Arc::new(ObjectStoreMetrics::unused()),
            "Hummock",
            Arc::new(ObjectStoreConfig::default()),
        )
        .await;

        let opts = self.get_storage_opts();

        let meta_cache = HybridCacheBuilder::new()

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Restart the cluster with a Hummock state store (shared storage, e.g. `use: minio` in risedev config).
  2. Fix the state_store value in the cluster configuration to a valid hummock:// URL.
  3. Use the compute engine's own tooling for non-Hummock clusters instead of risectl.
Defensive patterns

Strategy: validation

Validate before calling

// confirm cluster state store before risectl
// meta config: state_store must be a hummock:// URL

Prevention

When it happens

Trigger: Pointing risectl at a cluster whose state_store is not Hummock (e.g. an in-memory dev cluster), or a config value for hummock_state_store that fails the engine check inside create_hummock_store_with_metrics.

Common situations: Trying to inspect an ephemeral/test cluster that uses a non-Hummock store; a misconfigured state_store string in the cluster config; using risectl against setups it was never designed for.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11). Data as JSON: /api/errors/96b71a50a419ca20. Report an issue: GitHub.