{"record":{"id":"1328cefb298b1283","repo":"risingwavelabs/risingwave","slug":"non-zero-compression-not-supported","errorCode":null,"errorMessage":"Non-zero compression {} not supported","messagePattern":"Non-zero compression (.+?) not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/connector/src/parser/avro/parser.rs","lineNumber":138,"sourceCode":"                }\n            }\n            WriterSchemaCache::Glue(resolver) => {\n                // <https://github.com/awslabs/aws-glue-schema-registry/blob/v1.1.20/common/src/main/java/com/amazonaws/services/schemaregistry/utils/AWSSchemaRegistryConstants.java#L59-L61>\n                // byte 0:      header version = 3\n                // byte 1:      compression: 0 = no compression; 5 = zlib (unsupported)\n                // byte 2..=17: 16-byte UUID as schema version id\n                // byte 18..:   raw avro payload\n                if payload.len() < 18 {\n                    bail!(\"payload shorter than 18-byte glue header\");\n                }\n                if payload[0] != 3 {\n                    bail!(\n                        \"Only support glue header version 3 but found {}\",\n                        payload[0]\n                    );\n                }\n                if payload[1] != 0 {\n                    bail!(\"Non-zero compression {} not supported\", payload[1]);\n                }\n                let schema_version_id = uuid::Uuid::from_slice(&payload[2..18]).unwrap();\n                let writer_schema = resolver.get_by_id(schema_version_id).await?;\n                let mut raw_payload = &payload[18..];\n                Ok(Some(from_avro_datum(\n                    writer_schema.as_ref(),\n                    &mut raw_payload,\n                    Some(&self.schema.original_schema),\n                )?))\n            }\n        }\n    }\n}\n\n#[derive(Debug, Clone)]\npub struct AvroParserConfig {\n    schema: Arc<ResolvedAvroSchema>,\n    /// Writer schema is the schema used to write the data. When parsing Avro data, the exactly same schema","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/parser/avro/parser.rs#L120-L156","documentation":"This error is thrown when parsing a Glue-schema-registry-serialized Avro message whose header byte at position 1 (the compression byte) is not zero. The parser only supports uncompressed Glue payloads; any compression indicator means the payload was produced with a compression variant the parser cannot decompress, so ingestion fails fast.","triggerScenarios":"Consuming a Glue SR Avro topic where the producer enabled compression (GZip/Zstd/etc. per the Glue header spec); payload[0]==3 passes the version check but payload[1]!=0.","commonSituations":"Producer application or Glue serializer configured with compression enabled; a change on the producer side switched on compression after the RW source was created; SDK default serialization settings differing from expected.","solutions":["Disable compression in the producer's Glue/Avro serializer configuration so payload[1] is 0","If compression must stay enabled, decompress the payload before ingestion (e.g. via an intermediary) or add decompression support to the parser","Check the producer SDK version/config change history to find when compression was enabled","If this is believed to be an uncompressed payload, dump the first bytes (expect [0x03, 0x00]) to verify the header format"],"exampleFix":"// producer config (before)\nGlueSchemaRegistryConfiguration cfg = new GlueSchemaRegistryConfiguration(clientProps);\ncfg.compressionType = CompressionType.GZIP;\n// after\ncfg.compressionType = CompressionType.NONE;","handlingStrategy":"validation","validationCode":"// producer-side guard\nif (config.compressionType != CompressionType.NONE) throw new IllegalArgumentException(\"RisingWave Glue Avro source requires uncompressed payloads\");","typeGuard":null,"tryCatchPattern":"match res { Err(e) if e.to_string().contains(\"Non-zero compression\") => alert_producer_compression_enabled(e), Err(e) => propagate(e), Ok(v) => v }","preventionTips":["Keep Glue serializer compression disabled for streams consumed by RisingWave","Pin serializer config in code review; watch for SDK defaults enabling compression","Add a consumer-side test that asserts the first two payload bytes are [3, 0]"],"tags":["avro","glue-schema-registry","compression","streaming-parser"],"backgroundTag":"unsupported-operation","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"}