risingwavelabs/risingwave · error
connector '{}' is not supported
Error message
connector '{}' is not supported What it means
After the `connector` key is found, ConnectorProperties::extract dispatches through match_source_name_str! to the connector's PropType parser. If the lowercased connector name matches no known connector, this bail fires with the offending name.
Source
Thrown at src/connector/src/source/base.rs:679
/// `deny_unknown_fields`: Since `WITH` options are persisted in meta, we do not deny unknown fields when restoring from
/// existing data to avoid breaking backwards compatibility. We only deny unknown fields when creating new sources.
pub fn extract(
with_properties: WithOptionsSecResolved,
deny_unknown_fields: bool,
) -> Result<Self> {
let (options, secret_refs) = with_properties.into_parts();
let mut options_with_secret =
LocalSecretManager::global().fill_secrets(options, secret_refs)?;
let connector = options_with_secret
.remove(UPSTREAM_SOURCE_KEY)
.ok_or_else(|| anyhow!("Must specify 'connector' in WITH clause"))?
.to_lowercase();
match_source_name_str!(
connector.as_str(),
PropType,
PropType::try_from_btreemap(options_with_secret, deny_unknown_fields)
.map(ConnectorProperties::from),
|other| bail!("connector '{}' is not supported", other)
)
}
pub fn enforce_secret_source(
with_properties: &impl WithPropertiesExt,
) -> crate::error::ConnectorResult<()> {
let connector = with_properties
.get_connector()
.ok_or_else(|| anyhow!("Must specify 'connector' in WITH clause"))?
.to_lowercase();
let key_iter = with_properties.key_iter();
match_source_name_str!(
connector.as_str(),
PropType,
PropType::enforce_secret(key_iter),
|other| bail!("connector '{}' is not supported", other)
)
}View on GitHub (pinned to 6469eb736d)
Solutions
- Use a supported connector name (kafka, kinesis, pulsar, s3, datagen, nats, opensearch, etc.) — names are case-insensitive but must match the registry
- Run SHOW CREATE / check docs for the list of supported connectors in your RisingWave version
- Add match arms for the new connector in match_source_name_str! if extending the codebase
Example fix
// before WITH (connector='eventhubs', ...) // after WITH (connector='kafka', ...)
Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED: &[&str] = &["kafka","kinesis","pulsar","s3","datagen","nats","opensearch","cdc"]; assert!(SUPPORTED.contains(&connector_name.to_lowercase().as_str()));
Prevention
- Verify connector names against the RisingWave docs/registry for your version
- Names are lowercased before matching — avoid relying on unusual casing
- Watch release notes for connector renames/removals
When it happens
Trigger: Passing an unrecognized connector name, e.g. WITH (connector='rediss') or connector='kafk', or a connector removed/renamed in the running RisingWave version.
Common situations: Typos in connector name; relying on a third-party/renamed connector; older SQL scripts referencing a deprecated connector name.
Related errors
- Must specify 'connector' in WITH clause
- unsupported sink connector {}
- connector '{}' is not supported
- missing FORMAT ... ENCODE ...
- missing FORMAT ... ENCODE ...
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/55333d3820f73e64.
Report an issue: GitHub.