apache/seatunnel · error · org.apache.seatunnel.api.configuration.util.OptionValidationException
' ' duplicate in option options.
Error message
%s '%s' duplicate in option options.
What it means
A developer-facing duplicate guard in OptionRule.Builder.verifyDuplicateWithOptionOptions: an option was added twice to the same bucket (optional options, or a required group already overlapping the optional set), detected while registering required/optional options. The faulting input is the duplicated Option.
Solutions
- Remove the duplicate Option from the Builder.optional(...) or required/exclusive call
- Ensure each option key appears only once across the rule's option groups
- Fix the connector's OptionRule definition code, not the user config
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java:464 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/b930728d6b12d7a2.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java:464
.map(e -> new ConditionRule(e.getKey(), e.getValue()))
.collect(Collectors.toList());
return new OptionRule(
optionalOptions, requiredOptions, conditionRuleList, valueConstraints);
}
private void verifyRequiredOptionDefaultValue(@NonNull Option<?> option) {
if (option.defaultValue() != null) {
throw new OptionValidationException(
String.format(
"Required option '%s' should have no default value.",
option.key()));
}
}
private void verifyDuplicateWithOptionOptions(
@NonNull Option<?> option, @NonNull String currentOptionType) {
if (optionalOptions.contains(option)) {
throw new OptionValidationException(
String.format(
"%s '%s' duplicate in option options.",
currentOptionType, option.key()));
}
}
private void verifyRequiredOptionDuplicate(@NonNull RequiredOption requiredOption) {
verifyRequiredOptionDuplicate(requiredOption, false);
}
/**
* Verifies if there are duplicate options within the required options.
*
* @param requiredOption The required option to be verified
* @param ignoreVerifyDuplicateOptions Whether to ignore duplicate option verification If
* the value is true, the existing items in OptionOptions are ignored Currently, it
* applies only to conditional
* @throws OptionValidationException If duplicate options are foundView on GitHub (pinned to cf67b549a7)