risingwavelabs/risingwave · error
unsupported sink connector {}
Error message
unsupported sink connector {} What it means
The `connector` property was present but its value does not match any registered sink connector name, so the `match_sink_name_str!` macro's fallback returns this error. The sink executor cannot build an unknown connector type and fails the executor at startup.
Source
Thrown at src/stream/src/from_proto/sink.rs:265
let connector = {
let sink_type = properties_with_secret
.get(CONNECTOR_TYPE_KEY)
.ok_or_else(|| {
StreamExecutorError::from((
SinkError::Config(anyhow!("missing config: {}", CONNECTOR_TYPE_KEY)),
sink_id,
))
})?;
let sink_type_str = sink_type.to_lowercase();
match_sink_name_str!(
sink_type_str.as_str(),
SinkType,
Ok(SinkType::SINK_NAME),
|other: &str| {
Err(StreamExecutorError::from((
SinkError::Config(anyhow!("unsupported sink connector {}", other)),
sink_id,
)))
}
)?
};
let (sink_param, columns) = build_sink_param(sink_desc, properties_with_secret, connector)?;
let sink_write_param = SinkWriterParam {
executor_id: params.executor_id,
vnode_bitmap: params.vnode_bitmap.clone(),
meta_client: params.env.meta_client().map(SinkMetaClient::MetaClient),
extra_partition_col_idx: sink_desc.extra_partition_col_idx.map(|v| v as usize),
actor_id: params.actor_context.id,
sink_id,
sink_name,
connector: connector.to_owned(),View on GitHub (pinned to 6469eb736d)
Solutions
- Use a valid connector name (e.g. `kafka`, `redis`, `elasticsearch`, `iceberg`, `snowflake`, `pubsub`, `kinesis`, etc.) — check the docs for the exact list.
- Fix typos in the `connector` value and recreate the sink.
- Verify the connector is supported in your RisingWave build/edition; upgrade if using a newer connector.
- Trim whitespace and use lowercase for the connector value.
Example fix
-- before CREATE SINK s FROM t WITH (connector = 'kafaka', ...); -- after CREATE SINK s FROM t WITH (connector = 'kafka', ...);
Defensive patterns
Strategy: validation
Validate before calling
-- List supported connectors (docs / SHOW) and validate the value before creating the sink SELECT name FROM rw_catalog.rw_connectors; -- or consult supported-sinks documentation
Try / catch
// Catch the unsupported-connector error at sink creation and suggest valid names
try {
createSink({ connector: 'kafaka' });
} catch (e) {
if (String(e).includes('unsupported sink connector')) {
// fall back to a valid connector name from the supported list
}
} Prevention
- Copy connector names from the official supported-sinks list rather than typing them.
- Use lowercase names with no surrounding whitespace.
- Confirm the connector exists in your build/edition (OSS vs feature-gated).
- Keep RisingWave upgraded if you depend on newly added connectors.
When it happens
Trigger: `new_boxed_executor` parses the `connector` property and the resulting string is not one of the compiled-in connector names — e.g. `connector = 'kafaka'`, a connector name from a different RisingWave edition/build, or extra whitespace/casing that still fails the match.
Common situations: Misspelled connector names; using a connector available only in a commercial/newer build on an OSS build; copy-pasted config from another system; case/whitespace issues beyond the macro's lowercasing.
Related errors
- Unknown sink connector: {sink_name}
- missing config: {}
- Unknown source connector: {connector_name}
- Field '{field}' is not allowed to be altered on the fly for
- Field '{field}' is not allowed to be altered on the fly for
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/16efe16ed1a580d8.
Report an issue: GitHub.