quarkusio/quarkus · error · MojoExecutionException
The 'stream' parameter cannot be combined with 'platformGrou
Error message
The 'stream' parameter cannot be combined with 'platformGroupId', 'platformArtifactId', or 'platformVersion'. Please use either 'stream' or the platform coordinates, not both.
What it means
resolveExtensionsCatalog validates mutually exclusive parameters: if a non-blank 'stream' is supplied together with any of platformGroupId/platformArtifactId/platformVersion, it immediately throws this MojoExecutionException. Quarkus requires you to pick either the stream shorthand or explicit platform coordinates, never both, because they are two ways of locating the same platform.
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java:386
if (refresh) {
getLog().debug("Clearing local extension catalog cache");
catalogResolver.clearRegistryCache();
}
} catch (RegistryResolutionException e) {
// fall back to the default platform
catalogResolver = ExtensionCatalogResolver.empty();
}
return catalogResolver;
}
static ExtensionCatalog resolveExtensionsCatalog(AbstractMojo mojo, String groupId, String artifactId, String version,
String stream, ExtensionCatalogResolver catalogResolver, MavenArtifactResolver artifactResolver,
MessageWriter log)
throws MojoExecutionException {
if (!isBlank(stream)) {
if (!isBlank(groupId) || !isBlank(artifactId) || !isBlank(version)) {
throw new MojoExecutionException(
"The 'stream' parameter cannot be combined with 'platformGroupId', 'platformArtifactId', or 'platformVersion'."
+ " Please use either 'stream' or the platform coordinates, not both.");
}
return resolveExtensionsCatalogForStream(mojo, stream, catalogResolver);
}
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);
}
}View on GitHub (pinned to e1c734241f)
Solutions
- Remove the platformGroupId/platformArtifactId/platformVersion properties and keep only -Dstream
- Or remove -Dstream and specify the full platform coordinates explicitly
- If the properties come from a CI pipeline or .mvn/maven.config file, strip the redundant ones there
Example fix
# before mvn quarkus:create -Dstream=3.15 -DplatformVersion=3.15.1 # after mvn quarkus:create -Dstream=3.15
Defensive patterns
Strategy: validation
Validate before calling
// Reject conflicting inputs before invoking the goal
boolean hasStream = stream != null && !stream.isBlank();
boolean hasCoords = notBlank(platformGroupId) || notBlank(platformArtifactId) || notBlank(platformVersion);
if (hasStream && hasCoords) throw new IllegalArgumentException("Use either stream or platform coordinates, not both"); Try / catch
// Fail fast in scripts if [ -n "$STREAM" ] && [ -n "$PLATFORM_VERSION" ]; then echo "conflict" >&2; exit 2; fi
Prevention
- Standardize your team on ONE style: either -Dstream or full platform coordinates
- In CI templates, conditionally include platform properties only when stream is absent
- Check .mvn/maven.config and settings for inherited properties
When it happens
Trigger: Running `mvn quarkus:create ... -Dstream=3.15 -DplatformGroupId=io.quarkus.platform` (or with platformArtifactId/platformVersion) — any combination of stream plus one or more explicit platform coordinate properties.
Common situations: Copy-pasting platform coordinates from an older recipe while also adding -Dstream; scripting that unconditionally passes all platform properties even when stream is set; CI templates mixing both configuration styles.
Related errors
- Failed to resolve extension catalog for ${coords}. Make sure
- Failed to resolve platform descriptor ${platform}
- Failed to resolve extension catalog of ${platformCoords} [fr
- ${misalignmentReport}
- Unable to determine groupId and artifactId of the jar that c
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/7e0eeabcc9f17edc.
Report an issue: GitHub.