{"record":{"id":"0eeb2b142f5d258c","repo":"risingwavelabs/risingwave","slug":"sink-encode-unsupported","errorCode":null,"errorMessage":"sink encode unsupported: {}","messagePattern":"sink encode unsupported: (.+?)","errorType":"validation","errorClass":"SinkError::Config","httpStatus":null,"severity":"error","filePath":"src/connector/src/sink/catalog/mod.rs","lineNumber":251,"sourceCode":"            | F::DebeziumMongo\n            | F::Maxwell\n            | F::Canal\n            | F::None) => {\n                return Err(SinkError::Config(anyhow!(\n                    \"sink format unsupported: {}\",\n                    f.as_str_name()\n                )));\n            }\n        };\n        let encode = match value.encode() {\n            E::Json => SinkEncode::Json,\n            E::Protobuf => SinkEncode::Protobuf,\n            E::Template => SinkEncode::Template,\n            E::Avro => SinkEncode::Avro,\n            E::Parquet => SinkEncode::Parquet,\n            E::Bytes => SinkEncode::Bytes,\n            e @ (E::Unspecified | E::Native | E::Csv | E::None | E::Text) => {\n                return Err(SinkError::Config(anyhow!(\n                    \"sink encode unsupported: {}\",\n                    e.as_str_name()\n                )));\n            }\n        };\n        let key_encode = match &value.key_encode() {\n            E::Bytes => Some(SinkEncode::Bytes),\n            E::Text => Some(SinkEncode::Text),\n            E::Unspecified => None,\n            encode @ (E::Avro\n            | E::Csv\n            | E::Json\n            | E::Protobuf\n            | E::Template\n            | E::Native\n            | E::Parquet\n            | E::None) => {\n                return Err(SinkError::Config(anyhow!(","sourceCodeStart":233,"sourceCodeEnd":269,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/sink/catalog/mod.rs#L233-L269","documentation":"The SinkCatalog try_from conversion maps protobuf SinkEncode variants to the catalog's SinkEncode. Encodes such as Unspecified, Native, Csv, None, and Text are not supported for sinks and trigger this config error.","triggerScenarios":"CREATE SINK with encode='csv'/'text'/'native' or with the encode field left unspecified (Unspecified) when building the sink catalog from the protobuf plan.","commonSituations":"Reusing source-oriented encode settings in a sink definition; forgetting the encode option; assuming CSV is supported for sinks when it is source-only.","solutions":["Set encode to a sink-supported value: json, protobuf, template, avro, parquet, or bytes.","Always specify encode explicitly rather than relying on the default.","Check per-connector documentation, since not every connector supports every listed encode."],"exampleFix":"// before\nWITH (connector='kafka', format='append_only', encode='text', ...)\n// after\nWITH (connector='kafka', format='append_only', encode='json', ...)","handlingStrategy":"validation","validationCode":"const SINK_ENCODS = ['json', 'protobuf', 'template', 'avro', 'parquet', 'bytes'];\nif (!SINK_ENCODS.includes(props.encode)) throw new Error(`Unsupported sink encode: ${props.encode}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always specify encode explicitly in sink definitions.","Remember CSV/text encodes are source-only, not sink encodes.","Cross-check connector docs since support varies per connector."],"tags":["sink","encode","config","enum"],"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"}