{"record":{"id":"b930728d6b12d7a2","repo":"apache/seatunnel","slug":"s-s-duplicate-in-option-options","errorCode":null,"errorMessage":"%s '%s' duplicate in option options.","messagePattern":"(.+?) '(.+?)' duplicate in option options\\.","errorType":"validation","errorClass":"org.apache.seatunnel.api.configuration.util.OptionValidationException","httpStatus":null,"severity":"error","filePath":"seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java","lineNumber":464,"sourceCode":"                            .map(e -> new ConditionRule(e.getKey(), e.getValue()))\n                            .collect(Collectors.toList());\n            return new OptionRule(\n                    optionalOptions, requiredOptions, conditionRuleList, valueConstraints);\n        }\n\n        private void verifyRequiredOptionDefaultValue(@NonNull Option<?> option) {\n            if (option.defaultValue() != null) {\n                throw new OptionValidationException(\n                        String.format(\n                                \"Required option '%s' should have no default value.\",\n                                option.key()));\n            }\n        }\n\n        private void verifyDuplicateWithOptionOptions(\n                @NonNull Option<?> option, @NonNull String currentOptionType) {\n            if (optionalOptions.contains(option)) {\n                throw new OptionValidationException(\n                        String.format(\n                                \"%s '%s' duplicate in option options.\",\n                                currentOptionType, option.key()));\n            }\n        }\n\n        private void verifyRequiredOptionDuplicate(@NonNull RequiredOption requiredOption) {\n            verifyRequiredOptionDuplicate(requiredOption, false);\n        }\n\n        /**\n         * Verifies if there are duplicate options within the required options.\n         *\n         * @param requiredOption The required option to be verified\n         * @param ignoreVerifyDuplicateOptions Whether to ignore duplicate option verification If\n         *     the value is true, the existing items in OptionOptions are ignored Currently, it\n         *     applies only to conditional\n         * @throws OptionValidationException If duplicate options are found","sourceCodeStart":446,"sourceCodeEnd":482,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java#L446-L482","documentation":"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.","triggerScenarios":"Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java:464 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}