quarkusio/quarkus · error · IllegalStateException
The project does not import any Quarkus platform BOM
Error message
The project does not import any Quarkus platform BOM
What it means
ProjectUpdateInfos.resolveExtensionsUpdateInfo() and resolvePlatformUpdateInfo() require the current project state to import at least one Quarkus platform BOM, because update recommendations are expressed as changes to platform imports. checkProjectState() throws IllegalStateException when the current state has no platform BOMs.
Source
Thrown at independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/update/ProjectUpdateInfos.java:87
for (ArtifactCoords c : recommendedState.getPlatformBoms()) {
final PlatformInfo importInfo = platformImports.compute(c.getKey(), (k, v) -> {
if (v == null) {
return new PlatformInfo(null, c);
}
return new PlatformInfo(v.getImported(), c);
});
if (importInfo.isToBeImported()) {
newImports.add(importInfo);
} else if (importInfo.isVersionUpdateRecommended()) {
importVersionUpdates.add(importInfo);
}
}
return new ProjectPlatformUpdateInfo(platformImports, importVersionUpdates, newImports);
}
private static void checkProjectState(ProjectState currentState, ProjectState recommendedState) {
if (currentState.getPlatformBoms().isEmpty()) {
throw new IllegalStateException("The project does not import any Quarkus platform BOM");
}
}
public static ProjectState resolveRecommendedState(ProjectState currentState, ExtensionCatalog recommendedCatalog,
MessageWriter log) {
if (currentState.getPlatformBoms().isEmpty()) {
return currentState;
}
if (currentState.getExtensions().isEmpty()) {
return currentState;
}
final ExtensionMapBuilder builder = new ExtensionMapBuilder();
for (TopExtensionDependency dep : currentState.getExtensions()) {
builder.add(new ExtensionUpdateInfoBuilder(dep));
}
for (Extension e : recommendedCatalog.getExtensions()) {View on GitHub (pinned to e1c734241f)
Solutions
- Add the Quarkus platform BOM to dependencyManagement in your pom.xml (or equivalent in build.gradle)
- Use the Quarkus platform BOM version matching your intended Quarkus release (e.g. io.quarkus.platform:quarkus-bom:<version>)
- Verify how currentState was resolved: `quarkus:update` needs to resolve platform imports; ensure the build file is well-formed and resolvable
- If updating extensions without a platform is intended, don't use resolveExtensionsUpdateInfo/resolvePlatformUpdateInfo; they are platform-based APIs
Example fix
<!-- before: no platform import -->
<dependencies>...</dependencies>
<!-- after -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.quarkus.platform</groupId>
<artifactId>quarkus-bom</artifactId>
<version>3.15.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> Defensive patterns
Strategy: validation
Validate before calling
// before calling resolve*UpdateInfo
if (currentState.getPlatformBoms().isEmpty()) {
throw new IllegalStateException(
"Project must import a Quarkus platform BOM (io.quarkus.platform:quarkus-bom) before update");
}
ProjectUpdateInfos.resolvePlatformUpdateInfo(currentState, recommendedState); Try / catch
try {
ProjectUpdateInfos.resolveExtensionsUpdateInfo(currentState, recommendedState);
} catch (IllegalStateException e) {
if (e.getMessage().contains("platform BOM")) {
// instruct user to add quarkus-bom to dependencyManagement first
} else throw e;
} Prevention
- Always import quarkus-bom in dependencyManagement instead of pinning individual extension versions
- Verify the build file resolves platform imports before running quarkus:update
- Keep one platform BOM version aligned with your Quarkus release
- For Gradle, use the io.quarkus.platform plugin or enforcedPlatform
When it happens
Trigger: Calling ProjectUpdateInfos.resolveExtensionsUpdateInfo(currentState, recommendedState) or resolvePlatformUpdateInfo(...) with a ProjectState built from a pom.xml that does not import io.quarkus.platform:quarkus-bom (or any platform BOM) in dependencyManagement.
Common situations: Projects that pinned individual Quarkus extension versions without importing quarkus-bom, projects converted from other stacks and missing the platform import, custom platform configuration removed from the pom, running `quarkus:update` on a non-Quarkus or partial project.
Related errors
- 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
- Specifying a stream requires the Quarkus extension registry
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/1dc7bad8ba4c3642.
Report an issue: GitHub.