{"record":{"id":"6fc4e07f4596875e","repo":"quarkusio/quarkus","slug":"unsupported-naming-strategy","errorCode":null,"errorMessage":"Unsupported naming strategy: ","messagePattern":"Unsupported naming strategy: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions/spring-boot-properties/deployment/src/main/java/io/quarkus/spring/boot/properties/deployment/ClassConfigurationPropertiesUtil.java","lineNumber":500,"sourceCode":"        }\n        return getName(nameToUse, namingStrategy);\n    }\n\n    static String getName(String nameToUse, ConfigMapping.NamingStrategy namingStrategy) {\n        switch (namingStrategy) {\n            case KEBAB_CASE:\n                return StringUtil.hyphenate(nameToUse);\n            case VERBATIM:\n                return nameToUse;\n            case SNAKE_CASE:\n                return String.join(\"_\", new Iterable<String>() {\n                    @Override\n                    public Iterator<String> iterator() {\n                        return StringUtil.lowerCase(StringUtil.camelHumpsIterator(nameToUse));\n                    }\n                });\n            default:\n                throw new IllegalArgumentException(\"Unsupported naming strategy: \" + namingStrategy);\n        }\n    }\n\n    private static void createWriteValue(BlockCreator bc, Expr configObject, FieldInfo field,\n            MethodInfo setter, boolean useFieldAccess, Expr value) {\n        if (useFieldAccess) {\n            createFieldWrite(bc, configObject, field, value);\n        } else {\n            createSetterCall(bc, configObject, setter, value);\n        }\n    }\n\n    private static void createSetterCall(BlockCreator bc, Expr configObject,\n            MethodInfo setter, Expr value) {\n        bc.invokeVirtual(Jandex2Gizmo.methodDescOf(setter), configObject, value);\n    }\n\n    private static void createFieldWrite(BlockCreator bc, Expr configObject,","sourceCodeStart":482,"sourceCodeEnd":518,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/spring-boot-properties/deployment/src/main/java/io/quarkus/spring/boot/properties/deployment/ClassConfigurationPropertiesUtil.java#L482-L518","documentation":"Thrown when the naming strategy value declared on a @ConfigurationProperties class is not one of the supported strategies (KEBAB_CASE, SNAKE_CASE, etc.). getName() switches over the strategy and hits the default branch, throwing IllegalArgumentException with the unsupported strategy name.","triggerScenarios":"An @ConfigurationProperties annotation specifies namingStrategy with a value outside the allowed enum set — e.g. a typo, a custom string, or a strategy copied from Spring Boot that Quarkus does not implement; raised during getEffectiveConfigName while generating config population code.","commonSituations":"Copying Spring Boot PropertyNamingStrategy values (like CamelCase or LowerCamelCase) that Quarkus does not support; misspelling the strategy constant after a refactor; upgrading Quarkus and the strategy value changed/deprecated.","solutions":["Set namingStrategy to one of the supported values (KEBAB_CASE, SNAKE_CASE, etc. as exposed by the annotation's NamingStrategy enum).","Remove the namingStrategy attribute entirely to use the default strategy.","Check the Quarkus version docs — the accepted values are the extension's own enum, not Spring's PropertyNamingStrategy."],"exampleFix":"// before\n@ConfigurationProperties(prefix = \"app\", namingStrategy = ConfigurationProperties.NamingStrategy.CamelCase)\nclass AppProps { ... }\n\n// after\n@ConfigurationProperties(prefix = \"app\", namingStrategy = ConfigurationProperties.NamingStrategy.KEBAB_CASE)\nclass AppProps { ... }","handlingStrategy":"validation","validationCode":"// validate namingStrategy against supported set before build\nSet<String> supported = Set.of(\"KEBAB_CASE\", \"SNAKE_CASE\");\nif (namingStrategy != null && !supported.contains(namingStrategy)) {\n    throw new IllegalArgumentException(\"Unsupported namingStrategy: \" + namingStrategy);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use only values from the Quarkus ConfigurationProperties.NamingStrategy enum, not Spring's PropertyNamingStrategy","Let the IDE autocomplete the enum constant to avoid typos","Omit namingStrategy to get the default behavior"],"tags":["quarkus","build-time","naming-strategy","illegal-argument"],"backgroundTag":"invalid-enum-value","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}