quarkusio/quarkus · error · QuarkusCommandException

Some extensions are not compatible with the selected Java ve

Error message

Some extensions are not compatible with the selected Java version (%s):
 %s

What it means

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.

Source

Thrown at independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/CreateProjectCommandHandler.java:540

        }
    }

    private void checkMinimumJavaVersion(String javaVersionString, List<Extension> extensions) throws QuarkusCommandException {
        final List<Extension> incompatibleExtensions = new ArrayList<>();
        final int javaVersion = javaVersionString == null ? JavaVersion.DEFAULT_JAVA_VERSION
                : Integer.parseInt(javaVersionString);
        for (Extension extension : extensions) {
            Integer extMinJavaVersion = getMinimumJavaVersion(extension);
            if (extMinJavaVersion != null
                    && javaVersion < extMinJavaVersion) {
                incompatibleExtensions.add(extension);
            }
        }
        if (!incompatibleExtensions.isEmpty()) {
            final String list = incompatibleExtensions.stream()
                    .map(e -> String.format("- %s (min: %s)", e.managementKey(), getMinimumJavaVersion(e)))
                    .collect(Collectors.joining("\n  "));
            throw new QuarkusCommandException(String
                    .format("Some extensions are not compatible with the selected Java version (%s):\n %s", javaVersion, list));
        }
    }

    private static String getDefaultCodestart(ExtensionCatalog catalog) {
        // Recent versions of the catalog have a default-codestart in the project metadata (2.10+)
        var map = catalog.getMetadata();
        if (map != null && !map.isEmpty()) {
            var projectMetadata = map.get("project");
            if (projectMetadata instanceof Map) {
                var defaultCodestart = ((Map<?, ?>) projectMetadata).get("default-codestart");
                if (defaultCodestart != null) {
                    if (defaultCodestart instanceof String) {
                        return defaultCodestart.toString();
                    }
                }
            }
        }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Raise the project's Java version (quarkus create ... -DjavaVersion=21) to meet the highest listed minimum.
  2. Use a JDK/toolchain of at least the required version in your IDE and CI.
  3. Downgrade the offending extension or use an older Quarkus platform stream where the extension supports your Java version.
  4. Remove extensions you don't strictly need if their minimum is the blocker.

Example fix

// before
quarkus create app -x rest myapp -DjavaVersion=11
// after
quarkus create app -x rest myapp -DjavaVersion=21
Defensive patterns

Strategy: validation

Validate before calling

// Compare required vs selected Java version before creating the project
int selected = Runtime.version().feature();
for (Extension e : requestedExtensions) {
    String min = getMinimumJavaVersion(e); // from catalog metadata
    if (min != null && Integer.parseInt(min) > selected) {
        throw new IllegalStateException(e.managementKey() + " requires Java " + min);
    }
}

Try / catch

try {
    createProjectCmd.execute(...);
} catch (QuarkusCommandException e) {
    if (e.getMessage().startsWith("Some extensions are not compatible with the selected Java version")) {
        // re-run with a higher -DjavaVersion parsed from the message
    } else throw e;
}

Prevention

When it happens

Trigger: 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).

Common situations: 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.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/777cc1bc0efb4da2. Report an issue: GitHub.