{"record":{"id":"777cc1bc0efb4da2","repo":"quarkusio/quarkus","slug":"some-extensions-are-not-compatible-with-the-select","errorCode":null,"errorMessage":"Some extensions are not compatible with the selected Java version (%s):\n %s","messagePattern":"Some extensions are not compatible with the selected Java version \\((.+?)\\):\n (.+?)","errorType":"exception","errorClass":"QuarkusCommandException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/CreateProjectCommandHandler.java","lineNumber":540,"sourceCode":"        }\n    }\n\n    private void checkMinimumJavaVersion(String javaVersionString, List<Extension> extensions) throws QuarkusCommandException {\n        final List<Extension> incompatibleExtensions = new ArrayList<>();\n        final int javaVersion = javaVersionString == null ? JavaVersion.DEFAULT_JAVA_VERSION\n                : Integer.parseInt(javaVersionString);\n        for (Extension extension : extensions) {\n            Integer extMinJavaVersion = getMinimumJavaVersion(extension);\n            if (extMinJavaVersion != null\n                    && javaVersion < extMinJavaVersion) {\n                incompatibleExtensions.add(extension);\n            }\n        }\n        if (!incompatibleExtensions.isEmpty()) {\n            final String list = incompatibleExtensions.stream()\n                    .map(e -> String.format(\"- %s (min: %s)\", e.managementKey(), getMinimumJavaVersion(e)))\n                    .collect(Collectors.joining(\"\\n  \"));\n            throw new QuarkusCommandException(String\n                    .format(\"Some extensions are not compatible with the selected Java version (%s):\\n %s\", javaVersion, list));\n        }\n    }\n\n    private static String getDefaultCodestart(ExtensionCatalog catalog) {\n        // Recent versions of the catalog have a default-codestart in the project metadata (2.10+)\n        var map = catalog.getMetadata();\n        if (map != null && !map.isEmpty()) {\n            var projectMetadata = map.get(\"project\");\n            if (projectMetadata instanceof Map) {\n                var defaultCodestart = ((Map<?, ?>) projectMetadata).get(\"default-codestart\");\n                if (defaultCodestart != null) {\n                    if (defaultCodestart instanceof String) {\n                        return defaultCodestart.toString();\n                    }\n                }\n            }\n        }","sourceCodeStart":522,"sourceCodeEnd":558,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/CreateProjectCommandHandler.java#L522-L558","documentation":"checkMinimumJavaVersion compares each requested extension's minimum required Java version (from catalog metadata) against the selected project Java version. If any extension's minimum exceeds the chosen version, the command aborts listing each offender with its management key and minimum requirement.","triggerScenarios":"Executing CreateProject/CreateJSProject with extensions whose getMinimumJavaVersion() is greater than the javaVersion argument (e.g. extensions requiring 17 or 21 while creating a Java 11 project).","commonSituations":"Creating a project with -DjavaVersion=11 while adding modern extensions that require Java 17+; CI pipelines pinned to old JDKs; corporate standards mandating Java 8/11 with a current Quarkus platform.","solutions":["Raise the project's Java version (quarkus create ... -DjavaVersion=21) to meet the highest listed minimum.","Use a JDK/toolchain of at least the required version in your IDE and CI.","Downgrade the offending extension or use an older Quarkus platform stream where the extension supports your Java version.","Remove extensions you don't strictly need if their minimum is the blocker."],"exampleFix":"// before\nquarkus create app -x rest myapp -DjavaVersion=11\n// after\nquarkus create app -x rest myapp -DjavaVersion=21","handlingStrategy":"validation","validationCode":"// Compare required vs selected Java version before creating the project\nint selected = Runtime.version().feature();\nfor (Extension e : requestedExtensions) {\n    String min = getMinimumJavaVersion(e); // from catalog metadata\n    if (min != null && Integer.parseInt(min) > selected) {\n        throw new IllegalStateException(e.managementKey() + \" requires Java \" + min);\n    }\n}","typeGuard":null,"tryCatchPattern":"try {\n    createProjectCmd.execute(...);\n} catch (QuarkusCommandException e) {\n    if (e.getMessage().startsWith(\"Some extensions are not compatible with the selected Java version\")) {\n        // re-run with a higher -DjavaVersion parsed from the message\n    } else throw e;\n}","preventionTips":["Check extension metadata minimum-java-version before adding","Default new projects to a supported LTS (17/21)","Keep CI JDK and project javaVersion aligned"],"tags":["java-version","quarkus-cli","compatibility","project-creation"],"backgroundTag":"java-version-mismatch","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"}