{"record":{"id":"e25de3579e43b426","repo":"oracle/graal","slug":"duplicate-option-names-for-s-and-s-s","errorCode":null,"errorMessage":"Duplicate option names for %s.% and %s.%s","messagePattern":"Duplicate option names for (.+?)\\.% and (.+?)\\.(.+?)","errorType":"panic","errorClass":"GraalError","httpStatus":null,"severity":"error","filePath":"compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java","lineNumber":243,"sourceCode":"                GraalError.guarantee(options.contains(option), \"All options must have been discovered during static analysis: %s\", option);\n            } else {\n                options.add(option);\n            }\n        }\n\n        void afterAnalysis(AfterAnalysisAccess access) {\n            sealed = true;\n            Map<String, String> modules = libgraalLoader.getClassModuleMap();\n            for (OptionKey<?> option : options) {\n                OptionDescriptor descriptor = option.getDescriptor();\n                if (descriptor != null && descriptor.getContainer().optionsAreDiscoverable()) {\n                    GraalError.guarantee(access.isReachable(option.getClass()), \"%s\", option.getClass());\n                    GraalError.guarantee(access.isReachable(descriptor.getClass()), \"%s\", descriptor.getClass());\n\n                    String name = option.getName();\n                    OptionDescriptor conflict = OptionsParser.libgraalOptions.descriptors().put(name, descriptor);\n                    if (conflict != null) {\n                        throw new GraalError(\"Duplicate option names for %s.% and %s.%s\",\n                                        descriptor.getDeclaringClass().getName(),\n                                        descriptor.getFieldName(),\n                                        conflict.getDeclaringClass().getName(),\n                                        conflict.getFieldName());\n                    }\n\n                    String module = modules.get(descriptor.getDeclaringClass().getName());\n                    if (module.contains(\"enterprise\")) {\n                        OptionsParser.libgraalOptions.enterpriseOptions().add(name);\n                    }\n                }\n            }\n            OptionDescriptor.sealHelpStrings();\n        }\n    }\n\n    /**\n     * Transformer for {@code Fields.offsets} and {@code Edges.iterationMask} which need to be","sourceCodeStart":225,"sourceCodeEnd":261,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java#L225-L261","documentation":"Error \"Duplicate option names for %s.% and %s.%s\" thrown in oracle/graal.","triggerScenarios":"Thrown at compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java:243 when the library encounters an invalid state.","commonSituations":"Occurs when a caller violates the contract guarded by this check: Duplicate option names for {}.% and {}.{}","solutions":["Fix the condition reported by the error: Duplicate option names for {}.% and {}.{}","Check the throwing call site and ensure its documented preconditions (argument values, types, environment, or configuration) are satisfied before the call."],"exampleFix":"Validate inputs and environment so that the failing condition does not occur: Duplicate option names for {}.% and {}.{}","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}