quarkusio/quarkus · error · MojoExecutionException
Specifying a stream requires the Quarkus extension registry
Error message
Specifying a stream requires the Quarkus extension registry client. Please make sure the registry client is enabled.
What it means
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).
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java:411
if (catalogResolver.hasRegistries()) {
try {
return isBlank(groupId) && isBlank(artifactId) && isBlank(version)
? catalogResolver.resolveExtensionCatalog()
: catalogResolver.resolveExtensionCatalog(List.of(
ArtifactCoords.pom(getPlatformGroupId(mojo, groupId), getPlatformArtifactId(artifactId),
getPlatformVersion(mojo, version))));
} catch (RegistryResolutionException e) {
log.warn(e.getLocalizedMessage());
mojo.getLog().debug(e);
}
}
return resolveExtensionCatalogDirectly(mojo, groupId, artifactId, version, catalogResolver, artifactResolver, log);
}
private static ExtensionCatalog resolveExtensionsCatalogForStream(AbstractMojo mojo, String stream,
ExtensionCatalogResolver catalogResolver) throws MojoExecutionException {
if (!catalogResolver.hasRegistries()) {
throw new MojoExecutionException(
"Specifying a stream requires the Quarkus extension registry client."
+ " Please make sure the registry client is enabled.");
}
final PlatformStreamCoords streamCoords;
try {
streamCoords = PlatformStreamCoords.fromString(stream.trim());
} catch (IllegalArgumentException e) {
throw new MojoExecutionException(
"Invalid stream value '" + stream + "'."
+ " Value should be specified as 'platformKey:streamId', for example: 3.15 or io.quarkus.platform:3.15",
e);
}
try {
return catalogResolver.resolveExtensionCatalog(streamCoords);
} catch (RegistryResolutionException e) {
throw new MojoExecutionException("Failed to resolve the extension catalog for stream '" + stream + "'", e);
}
}View on GitHub (pinned to e1c734241f)
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
Example fix
# before mvn quarkus:create -Dstream=3.15 # with quarkus.registry.enabled=false # after: either enable the client or use coordinates mvn quarkus:create -DplatformGroupId=io.quarkus.platform -DplatformArtifactId=quarkus-bom -DplatformVersion=3.15.1
Defensive patterns
Strategy: validation
Validate before calling
# Confirm the registry client is usable before a stream-based create mvn quarkus:create -Dstream=3.15 -Dquarkus.registry.enabled=true # Or check settings/pom for quarkus.registry.enabled=false and registry repositories
Try / catch
// If the registry client is disabled by policy, switch to explicit coordinates instead of catching: mvn quarkus:create -DplatformGroupId=io.quarkus.platform -DplatformArtifactId=quarkus-bom -DplatformVersion=3.15.1
Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- This goal requires a Quarkus extension registry client to be
- Unsupported format: ${format}
- Either the `extension` or `extensions` parameter must be set
- Cannot specify both class and method name
- The project artifact's extension is '${extension}' while thi
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/bd35da42626a53f7.
Report an issue: GitHub.