{"record":{"id":"48a02ec49b77d6cc","repo":"risingwavelabs/risingwave","slug":"unsupported-sink-type","errorCode":null,"errorMessage":"unsupported sink type {}","messagePattern":"unsupported sink type (.+?)","errorType":"validation","errorClass":"SinkError","httpStatus":null,"severity":"error","filePath":"src/meta/src/controller/streaming_job.rs","lineNumber":3640,"sourceCode":"                // Validate that sink props can be altered\n                match sink.properties.inner_ref().get(CONNECTOR_TYPE_KEY) {\n                    Some(connector) => {\n                        let connector_type = connector.to_lowercase();\n                        check_sink_allow_alter_on_fly_fields(&connector_type, &prop_keys)\n                            .map_err(|e| SinkError::Config(anyhow!(e)))?;\n\n                        match_sink_name_str!(\n                            connector_type.as_str(),\n                            SinkType,\n                            {\n                                let mut new_sink_props = sink.properties.0.clone();\n                                new_sink_props.extend(alter_props.clone());\n                                SinkType::validate_alter_config_change(\n                                    &new_sink_props,\n                                    &alter_props,\n                                )\n                            },\n                            |sink: &str| Err(SinkError::Config(anyhow!(\n                                \"unsupported sink type {}\",\n                                sink\n                            )))\n                        )?\n                    }\n                    None => {\n                        return Err(SinkError::Config(anyhow!(\n                            \"connector not specified when alter sink\"\n                        ))\n                        .into());\n                    }\n                };\n\n                let mut new_sink_props = sink.properties.0.clone();\n                new_sink_props.extend(alter_props.clone());\n\n                // Prepare sink update\n                let active_sink = sink::ActiveModel {","sourceCodeStart":3622,"sourceCodeEnd":3658,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/src/controller/streaming_job.rs#L3622-L3658","documentation":"After resolving the sink's `connector` value to lowercase, the controller maps it to a `SinkType` via `match_sink_name_str!`. If the connector name does not correspond to any known sink type, the fallback closure returns `SinkError::Config(\"unsupported sink type <name>\")`. Only connectors with registered SinkType implementations support runtime config alteration validation.","triggerScenarios":"Altering sink props when the sink's `connector` property holds an unrecognized or misspelled connector name, or a connector that lacks SinkType support.","commonSituations":"Typo in the connector name at CREATE SINK time (e.g. 'kafak'); custom/experimental connectors without SinkType support; connector renamed across versions.","solutions":["Check the sink's connector value (`SHOW SINK`) and fix misspellings by recreating the sink with a supported connector.","Use one of the supported sink connectors (kafka, iceberg, etc.) that implement SinkType.","Recreate the sink with the corrected connector name, then apply the alter.","If a custom connector is required, implement/extend SinkType support for it."],"exampleFix":"-- before\nCREATE SINK s ... WITH (connector = 'kafak'); -- unsupported\n-- after\nCREATE SINK s ... WITH (connector = 'kafka');","handlingStrategy":"validation","validationCode":"-- confirm the connector is a supported sink type before altering\nSELECT properties FROM rw_sinks WHERE name = 'my_sink'; -- connector must be a known value (kafka, iceberg, ...)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always create sinks with an exact, documented connector name.","Validate connector names client-side against the supported list.","Watch for connector renames between RisingWave versions."],"tags":["sink","connector","validation","alter"],"backgroundTag":"unsupported-enum-value","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}