{"record":{"id":"52587bf11bbc4eed","repo":"risingwavelabs/risingwave","slug":"unsupported-encoding-for-debezium","errorCode":null,"errorMessage":"unsupported encoding for Debezium","messagePattern":"unsupported encoding for Debezium","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/connector/src/parser/debezium/debezium_parser.rs","lineNumber":88,"sourceCode":"                DebeziumAvroAccessBuilder::new(config, encoding_type)?,\n            ))\n        }\n        EncodingProperties::Json(json_config) => Ok(AccessBuilderImpl::DebeziumJson(\n            DebeziumJsonAccessBuilder::new(\n                json_config\n                    .timestamptz_handling\n                    .unwrap_or(TimestamptzHandling::GuessNumberUnit),\n                json_config\n                    .timestamp_handling\n                    .unwrap_or(TimestampHandling::GuessNumberUnit),\n                json_config.time_handling.unwrap_or(TimeHandling::Micro),\n                json_config\n                    .bigint_unsigned_handling\n                    .unwrap_or(BigintUnsignedHandlingMode::Long),\n                json_config.handle_toast_columns,\n            )?,\n        )),\n        _ => bail!(\"unsupported encoding for Debezium\"),\n    }\n}\n\nimpl DebeziumParser {\n    pub async fn new(\n        props: SpecificParserConfig,\n        rw_columns: Vec<SourceColumnDesc>,\n        source_ctx: SourceContextRef,\n    ) -> ConnectorResult<Self> {\n        let key_builder =\n            build_accessor_builder(props.encoding_config.clone(), EncodingType::Key).await?;\n        let payload_builder =\n            build_accessor_builder(props.encoding_config, EncodingType::Value).await?;\n        let debezium_props = if let ProtocolProperties::Debezium(props) = props.protocol_config {\n            props\n        } else {\n            unreachable!(\n                \"expecting Debezium protocol properties but got {:?}\",","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/parser/debezium/debezium_parser.rs#L70-L106","documentation":"DebeziumParser::build_accessor_builder supports only a fixed set of encodings (Debezium JSON and Avro). Any other SourceEncode reaches the catch-all arm and bails, since no accessor exists for that encoding under the Debezium protocol.","triggerScenarios":"Calling DebeziumParser::new with SpecificParserConfig whose encode is e.g. Protobuf, Bytes, or Native — anything other than the supported Debezium encodings.","commonSituations":"Configuring FORMAT DEBEZIUM with a non-JSON/non-Avro ENCODE in CREATE SOURCE; copy-pasted config templates; expecting Debezium Protobuf support that doesn't exist.","solutions":["Use ENCODE JSON or ENCODE AVRO with FORMAT DEBEZIUM","If the data is Protobuf-Debezium, convert the pipeline or implement a Debezium Protobuf accessor in the connector code","Confirm the actual wire format of the upstream topic before choosing the encode"],"exampleFix":"-- before\nFORMAT DEBEZIUM ENCODE PROTOBUF (...)\n-- after\nFORMAT DEBEZIUM ENCODE JSON (...)","handlingStrategy":"validation","validationCode":"if (!['json','avro'].includes(encode.toLowerCase())) throw new Error(`Debezium supports ENCODE JSON or AVRO, got ${encode}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Restrict Debezium source templates to JSON/AVRO encodes","Confirm the upstream wire format before choosing ENCODE","Track connector release notes for newly added Debezium encodings"],"tags":["debezium","encoding","source-definition"],"backgroundTag":"unsupported-operation","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}