{"record":{"id":"bd35da42626a53f7","repo":"quarkusio/quarkus","slug":"specifying-a-stream-requires-the-quarkus-extension","errorCode":null,"errorMessage":"Specifying a stream requires the Quarkus extension registry client. Please make sure the registry client is enabled.","messagePattern":"Specifying a stream requires the Quarkus extension registry client\\. Please make sure the registry client is enabled\\.","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java","lineNumber":411,"sourceCode":"        if (catalogResolver.hasRegistries()) {\n            try {\n                return isBlank(groupId) && isBlank(artifactId) && isBlank(version)\n                        ? catalogResolver.resolveExtensionCatalog()\n                        : catalogResolver.resolveExtensionCatalog(List.of(\n                                ArtifactCoords.pom(getPlatformGroupId(mojo, groupId), getPlatformArtifactId(artifactId),\n                                        getPlatformVersion(mojo, version))));\n            } catch (RegistryResolutionException e) {\n                log.warn(e.getLocalizedMessage());\n                mojo.getLog().debug(e);\n            }\n        }\n        return resolveExtensionCatalogDirectly(mojo, groupId, artifactId, version, catalogResolver, artifactResolver, log);\n    }\n\n    private static ExtensionCatalog resolveExtensionsCatalogForStream(AbstractMojo mojo, String stream,\n            ExtensionCatalogResolver catalogResolver) throws MojoExecutionException {\n        if (!catalogResolver.hasRegistries()) {\n            throw new MojoExecutionException(\n                    \"Specifying a stream requires the Quarkus extension registry client.\"\n                            + \" Please make sure the registry client is enabled.\");\n        }\n        final PlatformStreamCoords streamCoords;\n        try {\n            streamCoords = PlatformStreamCoords.fromString(stream.trim());\n        } catch (IllegalArgumentException e) {\n            throw new MojoExecutionException(\n                    \"Invalid stream value '\" + stream + \"'.\"\n                            + \" Value should be specified as 'platformKey:streamId', for example: 3.15 or io.quarkus.platform:3.15\",\n                    e);\n        }\n        try {\n            return catalogResolver.resolveExtensionCatalog(streamCoords);\n        } catch (RegistryResolutionException e) {\n            throw new MojoExecutionException(\"Failed to resolve the extension catalog for stream '\" + stream + \"'\", e);\n        }\n    }","sourceCodeStart":393,"sourceCodeEnd":429,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java#L393-L429","documentation":"resolveExtensionsCatalogForStream requires the Quarkus extension registry client; when the resolver reports no registries configured (catalogResolver.hasRegistries() is false), it throws this MojoExecutionException. Stream-based lookup (-Dstream=3.15) is resolved via registry metadata, which is only available when the registry client is enabled (quarkus.registry.enabled=true and registry quarkus-registry.json present).","triggerScenarios":"Running `mvn quarkus:create -Dstream=<x>` while quarkus.registry.enabled=false, or without any registry repositories configured in the build/platform so the resolver has no registries.","commonSituations":"Users who disabled the registry client (quarkus.registry.enabled=false) for offline builds then try stream-based creation; enterprise environments with mirrors that strip registry metadata; older projects created before the registry client was default.","solutions":["Enable the registry client: -Dquarkus.registry.enabled=true","Instead of -Dstream, specify explicit platform coordinates (platformGroupId/platformArtifactId/platformVersion) which don't require the registry client","Add the quarkus registry repository (https://registry.quarkus.io/maven) to your Maven repositories or settings.xml"],"exampleFix":"# before\nmvn quarkus:create -Dstream=3.15  # with quarkus.registry.enabled=false\n# after: either enable the client or use coordinates\nmvn quarkus:create -DplatformGroupId=io.quarkus.platform -DplatformArtifactId=quarkus-bom -DplatformVersion=3.15.1","handlingStrategy":"validation","validationCode":"# Confirm the registry client is usable before a stream-based create\nmvn quarkus:create -Dstream=3.15 -Dquarkus.registry.enabled=true\n# Or check settings/pom for quarkus.registry.enabled=false and registry repositories","typeGuard":null,"tryCatchPattern":"// If the registry client is disabled by policy, switch to explicit coordinates instead of catching:\nmvn quarkus:create -DplatformGroupId=io.quarkus.platform -DplatformArtifactId=quarkus-bom -DplatformVersion=3.15.1","preventionTips":["Never set quarkus.registry.enabled=false if you use stream-based tooling","Ensure the Quarkus registry repository is reachable from corporate networks/mirrors","Prefer explicit platform coordinates in offline/air-gapped environments"],"tags":["maven","registry-client","configuration"],"backgroundTag":"registry-client-disabled","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}