quarkusio/quarkus · error · UnsupportedOperationException

The version 2 CLI can not be used with Quarkus 1.x projects.

Error message

The version 2 CLI can not be used with Quarkus 1.x projects.
Use the maven/gradle plugins when working with Quarkus 1.x projects.

What it means

RegistryClientMixin.createQuarkusProject resolves the extension catalog first; when the registry client validation is on and the resolved catalog reports a Quarkus core version starting with "1.", it throws this UnsupportedOperationException. The version 2 CLI cannot create projects for Quarkus 1.x platforms, which must be managed with the Maven or Gradle plugins of that era.

Source

Thrown at devtools/cli-common/src/main/java/io/quarkus/cli/common/registry/RegistryClientMixin.java:62

        return config;
    }

    public RegistriesConfig resolveConfig() throws RegistryResolutionException {
        return config == null
                ? RegistriesConfig.resolveConfig()
                : RegistriesConfig.resolveFromFile(Path.of(config));
    }

    public QuarkusProject createQuarkusProject(Path projectRoot, TargetQuarkusPlatformGroup targetVersion, BuildTool buildTool,
            OutputOptionMixin log) throws RegistryResolutionException {
        return createQuarkusProject(projectRoot, targetVersion, buildTool, log, List.of());
    }

    public QuarkusProject createQuarkusProject(Path projectRoot, TargetQuarkusPlatformGroup targetVersion, BuildTool buildTool,
            OutputOptionMixin log, Collection<String> extensions) throws RegistryResolutionException {
        ExtensionCatalog catalog = getExtensionCatalog(targetVersion, log);
        if (VALIDATE && catalog.getQuarkusCoreVersion().startsWith("1.")) {
            throw new UnsupportedOperationException("The version 2 CLI can not be used with Quarkus 1.x projects.\n"
                    + "Use the maven/gradle plugins when working with Quarkus 1.x projects.");
        }
        catalog = CreateProjectHelper.completeCatalog(catalog, extensions, QuarkusProjectHelper.artifactResolver());
        return QuarkusProjectHelper.getProject(projectRoot, catalog, buildTool, JavaVersion.NA, log);
    }

    ExtensionCatalog getExtensionCatalog(TargetQuarkusPlatformGroup targetVersion, OutputOptionMixin log)
            throws RegistryResolutionException {
        log.debug("Resolving Quarkus extension catalog for " + targetVersion);
        QuarkusProjectHelper.setMessageWriter(log);
        if (enabled()) {
            QuarkusProjectHelper.setToolsConfig(resolveConfig());
        }

        if (VALIDATE && targetVersion.isStreamSpecified() && !enabled()) {
            throw new UnsupportedOperationException(
                    "Specifying a stream (--stream) requires the registry client to resolve resources. " +
                            "Please try again with the registry client enabled (--registry-client)");

View on GitHub (pinned to e1c734241f)

Solutions

  1. Target a Quarkus 2.x+ platform: drop explicit 1.x platform/stream selection (e.g. remove -S 1.13 or io.quarkus.platform:quarkus-bom:1.x).
  2. If you truly need a 1.x project, use the Quarkus 1.x Maven/Gradle plugins to generate it instead of the v2 CLI.
  3. Check quarkus.registry settings (quarkus.registry.quarkus-platform-version / config in ~/.quarkus/config.yaml) for a pinned 1.x version and remove it.

Example fix

// before
quarkus create app com.acme:demo --stream=1.13
// after
quarkus create app com.acme:demo --stream=2.16
Defensive patterns

Strategy: validation

Validate before calling

ExtensionCatalog catalog = /* resolved via getExtensionCatalog */;
if (catalog.getQuarkusCoreVersion().startsWith("1.")) {
    throw new IllegalStateException("Quarkus 1.x target; use the 1.x Maven/Gradle plugins");
}

Try / catch

try {
    mixin.createQuarkusProject(root, target, tool, log, extensions);
} catch (UnsupportedOperationException e) {
    // fall back to 1.x plugin-based project generation
}

Prevention

When it happens

Trigger: Calling createQuarkusProject(...) (or the `quarkus create` CLI command) with a target/platform that resolves to a Quarkus 1.x core version, e.g. a project or registry pinned to quarkus-bom 1.x.

Common situations: Maintaining a legacy Quarkus 1.x application and running `quarkus create app ...` with a stream or platform BOM pointing at 1.x; a parent pom or registry still referencing old 1.x platform coordinates.

Related errors


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