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

  1. Remove empty entries and stray commas from doris.config.partitions (e.g. use "p1,p2")
  2. Remove the doris.config.partitions option entirely if partition dropping is not intended
  3. 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

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


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/93037d96c2997826. Report an issue: GitHub.