quarkusio/quarkus · error · UnsupportedOperationException

Specifying a stream (--stream) requires the registry client

Error message

Specifying a stream (--stream) requires the registry client to resolve resources. Please try again with the registry client enabled (--registry-client)

What it means

RegistryClientMixin.getExtensionCatalog throws this UnsupportedOperationException when a stream (--stream) is specified but the registry client is disabled. Stream resolution requires the Quarkus registry client to resolve stream-to-platform mappings; without it the CLI cannot map a stream to concrete platform coordinates.

Source

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

        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)");
        }

        if (targetVersion.isPlatformSpecified()) {
            ArtifactCoords coords = targetVersion.getPlatformBom();
            return ToolsUtils.resolvePlatformDescriptorDirectly(coords.getGroupId(), coords.getArtifactId(),
                    coords.getVersion(), QuarkusProjectHelper.artifactResolver(), log);
        }

        final ExtensionCatalogResolver catalogResolver;
        try {
            catalogResolver = getExtensionCatalogResolver(log);
        } catch (RegistryResolutionException e) {
            log.warn(
                    "Configured Quarkus extension registries appear to be unavailable at the moment. "
                            + "It should still be possible to create a project by providing the groupId:artifactId:version of the desired Quarkus platform BOM, "
                            + "e.g. 'quarkus create -P "

View on GitHub (pinned to e1c734241f)

Solutions

  1. Re-run the command with --registry-client so streams can be resolved.
  2. Instead of --stream, specify an exact platform version/BOM with --platform-bom or -P io.quarkus.platform:quarkus-bom:3.2.x, which doesn't need registry stream resolution.
  3. Check ~/.quarkus/config.yaml for a registry-client-disabled setting and remove it if you want stream support.

Example fix

// before
quarkus create app com.acme:demo --stream=3.2
// after
quarkus create app com.acme:demo --stream=3.2 --registry-client
Defensive patterns

Strategy: fallback

Validate before calling

// before invoking with a stream, check client enablement
if (targetVersion.isStreamSpecified() && !registryClientMixin.enabled()) {
    // use explicit platform BOM instead of a stream
}

Try / catch

try {
    catalog = mixin.getExtensionCatalog(targetVersion, log);
} catch (UnsupportedOperationException e) {
    // retry with --registry-client or with an explicit --platform-bom
}

Prevention

When it happens

Trigger: Calling getExtensionCatalog(targetVersion, log) (via `quarkus create`/`quarkus add` with --stream=<x.y>) when --registry-client was not enabled (RegistryClientMixin.enabled() is false) and targetVersion.isStreamSpecified() is true.

Common situations: Running `quarkus create app ... -S 3.2` in environments where the registry client is disabled by default or by config (quarkus.registry disabled), e.g. some CI setups or with older CLI defaults.

Related errors


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