risingwavelabs/risingwave · error
Unsupported format {:?} encode {:?}
Error message
Unsupported format {:?} encode {:?} What it means
ParserConfig::new matches (SourceFormat, SourceEncode) pairs against a fixed list of supported combinations; anything not explicitly enumerated falls into the catch-all bail. This is a guard against unsupported format/encode combos reaching parser construction.
Source
Thrown at src/connector/src/parser/config.rs:311
timestamptz_handling: format_encode_options_with_secret
.get(TimestamptzHandling::OPTION_KEY)
.map(|value| TimestamptzHandling::from_options(value))
.transpose()?,
time_handling: None,
bigint_unsigned_handling: None,
handle_toast_columns: false,
}),
(SourceFormat::DebeziumMongo, SourceEncode::Json) => {
let props = MongoProperties::from(&format_encode_options_with_secret);
EncodingProperties::MongoJson(props)
}
(SourceFormat::Plain, SourceEncode::Bytes) => {
EncodingProperties::Bytes(BytesProperties { column_name: None })
}
(SourceFormat::Native, SourceEncode::Native) => EncodingProperties::Native,
(SourceFormat::None, SourceEncode::None) => EncodingProperties::None,
(format, encode) => {
bail!("Unsupported format {:?} encode {:?}", format, encode);
}
};
Ok(Self {
encoding_config,
protocol_config,
})
}
}
#[derive(Debug, Default, Clone)]
pub struct AvroProperties {
pub schema_location: SchemaLocation,
pub record_name: Option<String>,
pub key_record_name: Option<String>,
pub map_handling: Option<MapHandling>,
}
/// WIP: may cover protobuf and json schema later.View on GitHub (pinned to 6469eb736d)
Solutions
- Choose a supported combination, e.g. Plain/Upsert + Avro/Protobuf/Json/Bytes, DebeziumJson + Json, Native + Native, None + None
- Check RisingWave docs for the supported FORMAT ... ENCODE ... matrix before creating the source
- If the combination should be supported, it needs a new match arm with corresponding EncodingProperties in the source code
Example fix
-- before FORMAT DEBEZIUM ENCODE AVRO -- after FORMAT DEBEZIUM ENCODE JSON
Defensive patterns
Strategy: validation
Validate before calling
const supported = new Set(["plain:json","plain:avro","plain:protobuf","plain:bytes","upsert:json","upsert:avro","upsert:protobuf","debezium:json","debezium:avro","native:native","none:none"]);
if (!supported.has(`${format}:${encode}`.toLowerCase())) throw new Error(`unsupported combination ${format}:${encode}`); Prevention
- Check the RisingWave CREATE SOURCE docs matrix before composing FORMAT/ENCODE
- Validate format:encode pairs in config linting tooling
- Keep source templates aligned with supported combinations
When it happens
Trigger: Passing combinations like (Plain, Avro-with-unsupported...), (DebeziumMongoJson, Avro), (Upsert, Native), or any pairing absent from the match arms in config.rs.
Common situations: Typo or wrong FORMAT/ENCODE keywords in CREATE SOURCE; combining a format with an encode only valid elsewhere; attempting experimental combos not yet supported by RisingWave.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- unused FORMAT ENCODE option: key.message='{name}'
- protobuf file location not provided
- No auth method specified for Vault backend
- Field '{}' not found in secret
- unrecognized configs: {:?}
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/07831296bcfcc984.
Report an issue: GitHub.