apache/seatunnel · error · DorisConnectorException
CONFIG_VALIDATION_FAILED
CONFIG_VALIDATION_FAILED
Error message
PluginName: Doris, Message: 'doris.config.partitions' cannot contain blank partition names.
What it means
DorisSinkConfig.parseDropDataPartitions validates the `doris.config.partitions` option; splitting on comma must yield non-empty trimmed partition names, otherwise a DorisConnectorException with CONFIG_VALIDATION_FAILED is thrown. This prevents empty entries like 'p1,,p2' or trailing commas from reaching partition-drop logic.
Source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/config/DorisSinkConfig.java:175
}
/**
* Parses a comma-separated partition list for partition-scoped DROP_DATA cleanup.
*
* @throws DorisConnectorException if a partition name is blank or duplicated
*/
private static List<String> parseDropDataPartitions(Properties streamLoadProperties) {
String configuredPartitions = streamLoadProperties.getProperty("partitions");
if (configuredPartitions == null) {
return Collections.emptyList();
}
String[] values = configuredPartitions.split(",", -1);
List<String> partitions = new ArrayList<>(values.length);
Set<String> uniquePartitions = new HashSet<>();
for (String value : values) {
String partition = value.trim();
if (partition.isEmpty()) {
throw new DorisConnectorException(
SeaTunnelAPIErrorCode.CONFIG_VALIDATION_FAILED,
"PluginName: Doris, Message: 'doris.config.partitions' cannot contain blank partition names.");
}
if (!uniquePartitions.add(partition)) {
throw new DorisConnectorException(
SeaTunnelAPIErrorCode.CONFIG_VALIDATION_FAILED,
"PluginName: Doris, Message: 'doris.config.partitions' cannot contain duplicate partition names.");
}
partitions.add(partition);
}
return Collections.unmodifiableList(partitions);
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Remove empty entries and stray commas from doris.config.partitions (e.g. use "p1,p2")
- Remove the doris.config.partitions option entirely if partition dropping is not intended
- Validate the partition names against actual Doris partitions (`SHOW PARTITIONS FROM table`)
Example fix
// before partitions = "p1,,p2" // after partitions = "p1,p2"
Defensive patterns
Strategy: validation
Validate before calling
String partitions = config.getString("doris.config.partitions");
if (partitions != null && Stream.of(partitions.split(",")).map(String::trim).anyMatch(String::isEmpty)) {
throw new IllegalArgumentException("doris.config.partitions contains blank names");
} Try / catch
try {
DorisSinkConfig cfg = DorisSinkConfig.of(config);
} catch (DorisConnectorException e) {
if (e.getMessage().contains("cannot contain blank partition names")) {
LOG.error("Fix doris.config.partitions: remove empty entries / stray commas");
}
throw e;
} Prevention
- Avoid double commas and trailing commas in comma-separated config lists
- Trim and filter entries programmatically when building the config
- Validate partition names against SHOW PARTITIONS output before submitting the job
When it happens
Trigger: Setting doris.config.partitions to a value that contains an empty element after trimming: e.g. "p1,,p2", ",p1", "p1,", or a value of only whitespace/commas.
Common situations: Hand-edited HOCON config with accidental double commas or trailing comma; templated config where a variable resolved to empty; copy-paste errors in partition lists.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- Please configure unique `database`.`table`, not allow null/d
- Please configure `database`, not allow null database in conf
- Please configure `table`, not allow null table in config.
- CONFIG_VALIDATION_FAILED
- port must be positive
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/93037d96c2997826.
Report an issue: GitHub.