quarkusio/quarkus · error · MojoExecutionException
Multiple platforms were matching the requested platform BOM…
Error message
Multiple platforms were matching the requested platform BOM coordinates ${bomGroupId}:${bomArtifactId}:${bomVersion}: - ${bom} What it means
This MojoExecutionException is thrown by QuarkusProjectMojoBase.getSingleMatchingBom when the resolved platform catalog contains more than one platform BOM matching the requested (possibly partial) bomGroupId:bomArtifactId:bomVersion coordinates. Because the tooling cannot pick one deterministically, it lists all matching BOMs in the message and fails. It protects against silently choosing the wrong platform.
Solutions
- Pass fully-qualified, unambiguous BOM coordinates: -DbomGroupId=io.quarkus.platform -DbomArtifactId=quarkus-bom -DbomVersion=<version>
- Read the list of matching BOMs in the error message and pick one explicitly
- Configure the coordinates in the plugin <configuration> block of the pom.xml instead of partial CLI flags
- Regenerate/upgrade the project so it uses a current single-BOM platform catalog
Example fix
// before mvn quarkus:add-extension -Dextensions="rest" -DbomVersion=3.8.1 // after mvn quarkus:add-extension -Dextensions="rest" -DbomGroupId=io.quarkus.platform -DbomArtifactId=quarkus-bom -DbomVersion=3.8.1
Defensive patterns
Strategy: validation
Validate before calling
// Ensure all three BOM coordinates are specified before invoking the goal:
assert System.getProperty("bomGroupId") != null;
assert System.getProperty("bomArtifactId") != null;
assert System.getProperty("bomVersion") != null; Prevention
- Always pass fully-qualified io.quarkus.platform:quarkus-bom:<version> coordinates
- Avoid partial coordinates (e.g. version-only) against multi-BOM catalogs
- Keep platform catalogs current to benefit from single-BOM layouts
- Store coordinates in the pom plugin configuration instead of ad-hoc flags
When it happens
Trigger: Calling getSingleMatchingBom (from getImportedPlatforms) with null/partial BOM coordinates while the platform catalog resolves to multiple BOMs, e.g. specifying only a version (-DbomVersion=3.8.1) when the catalog holds both quarkus-bom and quarkus-universe-bom, or several matching members.
Common situations: Older platform catalogs containing multiple BOM artifacts (quarkus-bom, quarkus-universe-bom); user passing an incomplete coordinate prefix that matches several platform members; custom platform catalogs with multiple BOMs.
Related errors
- Bad artifact coordinates , expected format is
- The project does not import any Quarkus platform BOM
- (aggregated Maven build error messages accumulated in the…
- An error occurred attempting to resolve effective POM
- appArtifact expression
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/2b8a6435a058a66a.
Report an issue: GitHub.
Appendix: source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java:296
}
}
}
}
if (matches != null) {
StringWriter buf = new StringWriter();
buf.append("Multiple platforms were matching the requested platform BOM coordinates ");
buf.append(bomGroupId == null ? "*" : bomGroupId).append(':');
buf.append(bomArtifactId == null ? "*" : bomArtifactId).append(':');
buf.append(bomVersion == null ? "*" : bomVersion).append(": ");
try (BufferedWriter writer = new BufferedWriter(buf)) {
for (ArtifactCoords bom : matches) {
writer.newLine();
writer.append("- ").append(bom.toString());
}
} catch (IOException e) {
//
}
throw new MojoExecutionException(buf.toString());
}
return platformBom;
}
}
View on GitHub (pinned to e1c734241f)