{"record":{"id":"a250fe9591291c44","repo":"quarkusio/quarkus","slug":"unsupported-checkedtemplate-defaultname-value","errorCode":null,"errorMessage":"Unsupported @CheckedTemplate#defaultName() value: <defaultNameStrategy>","messagePattern":"Unsupported @CheckedTemplate#defaultName\\(\\) value: <defaultNameStrategy>","errorType":"exception","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/QuteProcessor.java","lineNumber":620,"sourceCode":"        return targetClass.nestingType() == NestingType.TOP_LEVEL ? targetClass.name().withoutPackagePrefix()\n                : targetClass.simpleName();\n    }\n\n    private String defaultedName(String defaultNameStrategy, String value) {\n        switch (defaultNameStrategy) {\n            case CheckedTemplate.ELEMENT_NAME:\n                return value;\n            case CheckedTemplate.HYPHENATED_ELEMENT_NAME:\n                return StringUtil.hyphenate(value);\n            case CheckedTemplate.UNDERSCORED_ELEMENT_NAME:\n                return String.join(\"_\", new Iterable<String>() {\n                    @Override\n                    public Iterator<String> iterator() {\n                        return StringUtil.lowerCase(StringUtil.camelHumpsIterator(value));\n                    }\n                });\n            default:\n                throw new IllegalArgumentException(\"Unsupported @CheckedTemplate#defaultName() value: \" + defaultNameStrategy);\n        }\n    }\n\n    private boolean isNotLocatedByCustomTemplateLocator(\n            Collection<Pattern> locationPatterns, String templatePath) {\n        if (!locationPatterns.isEmpty() && templatePath != null) {\n            for (Pattern locationPattern : locationPatterns) {\n                if (locationPattern.matcher(templatePath).matches()) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n\n    @BuildStep\n    EffectiveTemplatePathsBuildItem collectEffectiveTemplatePaths(QuteConfig config,\n            List<TemplatePathBuildItem> templatePaths) {","sourceCodeStart":602,"sourceCodeEnd":638,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/QuteProcessor.java#L602-L638","documentation":"@CheckedTemplate#defaultName() selects how method/fragment names are converted to template path segments (e.g. LOWERCASE, CAMEL_HUMPS, LOWER_UNCERTAIN style constants from CheckedTemplate.DefaultName). defaultedName throws IllegalArgumentException for any constant value the processor does not recognize — typically when compiling against a mismatched Qute version or passing a non-enum value.","triggerScenarios":"defaultedName is called from getCheckedTemplateName/getCheckedFragmentId while processing @CheckedTemplate; the annotation's defaultName member holds a value outside the supported set handled by the switch statement.","commonSituations":"Quarkus/Qute version skew: annotation compiled against a newer io.quarkus.qute.CheckedTemplate with constants the deployment processor doesn't know; manually passing an invalid constant in a code generator; typos when constructing AnnotationValue in tests.","solutions":["Use only documented constants from CheckedTemplate.DefaultName (e.g. CheckedTemplate.DefaultName.ELEMENT_NAME, .LOWER_HYPHENATED, .LOWER_SNAKE, .UPPER_SNAKE)","Align Quarkus BOM/platform versions so the qute annotation and deployment processor come from the same release","Clean and rebuild — stale classes from an older Quarkus version can carry removed constants"],"exampleFix":"// before\n@CheckedTemplate(defaultName = CheckedTemplate.DefaultName.KEBAB) // non-existent/unsupported\n// after\n@CheckedTemplate(defaultName = CheckedTemplate.DefaultName.LOWER_HYPHENATED)","handlingStrategy":"validation","validationCode":"// validate defaultName before use\nCheckedTemplate.DefaultName dn = templateAnnotation.defaultName();\nif (dn != CheckedTemplate.DefaultName.ELEMENT_NAME\n    && dn != CheckedTemplate.DefaultName.LOWER_HYPHENATED\n    && dn != CheckedTemplate.DefaultName.LOWER_SNAKE\n    && dn != CheckedTemplate.DefaultName.UPPER_SNAKE) {\n    throw new IllegalArgumentException(\"Unsupported defaultName: \" + dn);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use only constants from your Quarkus version's CheckedTemplate.DefaultName","Keep Quarkus platform BOM aligned across all modules (no mixed versions)","Check the Quarkus migration guide after upgrades for renamed constants"],"tags":["qute","build-time","checked-template","invalid-value"],"backgroundTag":"unsupported-enum-value","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}