{"record":{"id":"8ffc52d8feae928a","repo":"quarkusio/quarkus","slug":"unsupported-build-tool-wrapper-buildtool","errorCode":null,"errorMessage":"Unsupported build tool wrapper: ${buildTool}","messagePattern":"Unsupported build tool wrapper: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/codestarts/quarkus/QuarkusCodestartCatalog.java","lineNumber":229,"sourceCode":"                .map(Extensions::toGA)\n                .filter(extensionsMapping::containsKey)\n                .map(extensionsMapping::get);\n    }\n\n    private List<String> getToolingCodestarts(QuarkusCodestartProjectInput projectInput) {\n        final List<String> codestarts = new ArrayList<>();\n        codestarts.add(projectInput.getBuildTool().getKey());\n        if (projectInput.getAppContent().contains(AppContent.BUILD_TOOL_WRAPPER)) {\n            switch (projectInput.getBuildTool()) {\n                case GRADLE:\n                case GRADLE_KOTLIN_DSL:\n                    codestarts.add(Tooling.TOOLING_GRADLE_WRAPPER.key());\n                    break;\n                case MAVEN:\n                    codestarts.add(Tooling.TOOLING_MAVEN_WRAPPER.key());\n                    break;\n                default:\n                    throw new IllegalArgumentException(\"Unsupported build tool wrapper: \" + projectInput.getBuildTool());\n            }\n        }\n        if (projectInput.getAppContent().contains(AppContent.DOCKERFILES)) {\n            codestarts.add(QuarkusCodestartCatalog.Tooling.TOOLING_DOCKERFILES.key());\n        }\n        return codestarts;\n    }\n\n    private Map<String, Object> generateSelectionData(QuarkusCodestartProjectInput projectInput,\n            List<Codestart> projectCodestarts) {\n        Map<String, Object> data = new HashMap<>();\n        final Map<String, Object> inputData = new HashMap<>();\n        inputData.put(INPUT_PROVIDED_CODE_KEY,\n                projectCodestarts.stream().filter(c -> c.getType() == CodestartType.CODE).map(c -> {\n                    Map<String, Object> eData = new HashMap<>();\n                    eData.put(\"name\", c.getName());\n                    eData.put(\"tags\", c.getTags());\n                    eData.putAll(c.getMetadata());","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/codestarts/quarkus/QuarkusCodestartCatalog.java#L211-L247","documentation":"When the project input requests build-tool wrapper tooling codestarts, the switch only handles GRADLE and MAVEN. Any other BuildTool value reaching getToolingCodestarts hits the default branch and throws this IllegalArgumentException, since wrapper generation is only implemented for these two build tools.","triggerScenarios":"Calling select (via CreateProject) with includeBuildToolWrapper=true and projectInput.getBuildTool() set to a value other than MAVEN or GRADLE (e.g. a custom/unsupported BuildTool enum value).","commonSituations":"Programmatic API users constructing a BuildTool value not covered by the wrapper tooling; passing 'maven' wrapper request for a custom build tool in embedded tooling.","solutions":["Use MAVEN or GRADLE as the build tool when requesting a wrapper","Set includeBuildToolWrapper=false for unsupported build tools","Check the BuildTool enum for supported values before calling"],"exampleFix":"// before\ninput.setBuildTool(SomeOtherBuildTool);\ninput.setIncludeBuildToolWrapper(true);\n// after\ninput.setBuildTool(BuildTool.MAVEN);\ninput.setIncludeBuildToolWrapper(true);","handlingStrategy":"validation","validationCode":"if (input.isIncludeBuildToolWrapper() && input.getBuildTool() != BuildTool.MAVEN && input.getBuildTool() != BuildTool.GRADLE) { throw new IllegalArgumentException(\"wrapper only supports maven/gradle\"); }","typeGuard":null,"tryCatchPattern":"try { catalog.select(projectInput, ...); } catch (IllegalArgumentException e) { if (e.getMessage().startsWith(\"Unsupported build tool wrapper\")) { input.setIncludeBuildToolWrapper(false); catalog.select(projectInput, ...); } }","preventionTips":["Only request wrappers for MAVEN or GRADLE build tools","Check BuildTool support before enabling includeBuildToolWrapper","Keep custom BuildTool usages free of wrapper requests"],"tags":["build-tool","wrapper","codestart"],"backgroundTag":"unsupported-build-tool","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"}