{"record":{"id":"4cb54ae7cfe8d9f8","repo":"apache/seatunnel","slug":"s-s-duplicate-in-s-options","errorCode":null,"errorMessage":"%s '%s' duplicate in %s options.","messagePattern":"(.+?) '(.+?)' duplicate in (.+?) 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":523,"sourceCode":"                                                                    .ConditionalRequiredOptions) {\n                                                Option<?> requiredOptionCondition =\n                                                        ((RequiredOption.ConditionalRequiredOptions)\n                                                                        requiredOption)\n                                                                .getExpression()\n                                                                .getCondition()\n                                                                .getOption();\n\n                                                Option<?> roOptionCondition =\n                                                        ((RequiredOption.ConditionalRequiredOptions)\n                                                                        ro)\n                                                                .getExpression()\n                                                                .getCondition()\n                                                                .getOption();\n\n                                                if (ro.getOptions().contains(option)\n                                                        && !requiredOptionCondition.equals(\n                                                                roOptionCondition)) {\n                                                    throw new OptionValidationException(\n                                                            String.format(\n                                                                    \"%s '%s' duplicate in %s options.\",\n                                                                    requiredOption\n                                                                            .getClass()\n                                                                            .getSimpleName(),\n                                                                    option.key(),\n                                                                    ro.getClass().getSimpleName()));\n                                                }\n                                            } else {\n                                                if (ro.getOptions().contains(option)) {\n                                                    throw new OptionValidationException(\n                                                            String.format(\n                                                                    \"%s '%s' duplicate in %s options.\",\n                                                                    requiredOption\n                                                                            .getClass()\n                                                                            .getSimpleName(),\n                                                                    option.key(),\n                                                                    ro.getClass().getSimpleName()));","sourceCodeStart":505,"sourceCodeEnd":541,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java#L505-L541","documentation":"Thrown during OptionRule validation when the same Option is registered more than once inside a ConditionalRequiredOptions expression — i.e. the developer reused one option key as both a condition and a required option (or repeated it as a condition) in a conditional() rule. It is a config-definition build-time guard, not a runtime data error: the faulty input is the duplicated Option instance passed to OptionRule's conditional builder.","triggerScenarios":"Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java:523 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the conditional() rule in the failing factory's OptionRule and remove the duplicate option from either the condition list or the required-option list","Use distinct Option instances (different keys) for the condition and the required options of the rule","If the same key must be referenced, reuse the same Option constant instead of declaring a second Option with an identical key"],"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"}