quarkusio/quarkus · error · MojoExecutionException
Failed to resolve Quarkus application model for <artifact>
Error message
Failed to resolve Quarkus application model for <artifact>
What it means
After collecting the dependency tree, GoOfflineMojo resolves the Quarkus application model for the project artifact. If that model resolution throws AppModelResolverException, this MojoExecutionException is thrown. It means the Quarkus-specific view of the application's dependencies could not be built even though generic dependency collection succeeded.
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/GoOfflineMojo.java:121
final DependencyNode root;
try {
root = resolver.getSystem().collectDependencies(
resolver.getSession(),
resolver.newCollectManagedRequest(pom, List.of(), List.of(), List.of(), List.of(), excludedScopes))
.getRoot();
} catch (Exception e) {
throw new MojoExecutionException("Failed to collect dependencies of " + pom, e);
}
final LocalWorkspace workspace = resolver.getMavenContext().getWorkspace();
final List<Path> createdDirs = new ArrayList<>(workspace.getProjects().size());
try {
ensureResolvableModule(root, workspace, createdDirs);
appModelResolver.resolveModel(ArtifactCoords.of(pom.getGroupId(), pom.getArtifactId(), pom.getClassifier(),
pom.getExtension(), pom.getVersion()));
} catch (AppModelResolverException e) {
throw new MojoExecutionException("Failed to resolve Quarkus application model for " + project.getArtifact(), e);
} finally {
for (Path d : createdDirs) {
IoUtils.recursiveDelete(d);
}
}
}
private MavenArtifactResolver getResolver() throws MojoExecutionException {
return workspaceProvider.createArtifactResolver(BootstrapMavenContext.config()
.setUserSettings(session.getRequest().getUserSettingsFile())
.setCurrentProject(project.getBasedir().toString())
.setRemoteRepositoryManager(remoteRepositoryManager)
.setRemoteRepositories(repos)
.setPreferPomsFromWorkspace(true));
}
private static void ensureResolvableModule(DependencyNode node, LocalWorkspace workspace, List<Path> createdDirs)
throws MojoExecutionException {View on GitHub (pinned to e1c734241f)
Solutions
- Verify quarkus.platform.groupId/artifactId/version match a published BOM and update them
- Run `mvn quarkus:go-offline -U` to refresh platform metadata
- Check the AppModelResolverException cause for the specific unresolvable artifact
- Ensure the module is a Quarkus app (quarkus core dependency + platform BOM imported)
- Clean ~/.m2/repository/io/quarkus and re-run
Example fix
// before <quarkus.platform.version>3.0.0.Final-nonexistent</quarkus.platform.version> // after <quarkus.platform.version>3.2.9.Final</quarkus.platform.version>
Defensive patterns
Strategy: try-catch
Validate before calling
// verify platform BOM coordinates exist before running String version = "3.2.9.Final"; // check io.quarkus.platform:quarkus-bom:<version> resolves: mvn dependency:get -Dartifact=io.quarkus.platform:quarkus-bom:3.2.9.Final:pom
Try / catch
try {
// go-offline execution
} catch (MojoExecutionException e) {
if (e.getCause() instanceof AppModelResolverException) {
log.error("Quarkus model resolution failed: " + e.getCause().getMessage());
}
} Prevention
- Keep quarkus.platform.version and plugin version in sync
- Never override Quarkus extension versions individually
- Test platform upgrades in a branch before pinning
When it happens
Trigger: Calling `mvn quarkus:go-offline` when quarkus platform BOMs are missing/mismatched, extension coordinates do not resolve, or the project artifact lacks proper Quarkus metadata in the reactor.
Common situations: quarkus.platform.version pointing at a nonexistent release; extension version conflicts across BOMs; a module that is not a Quarkus application being processed; stale platform BOM in local repo.
Related errors
- Unable to parse pom file: ${pom}
- Could not resolve POM for
- Failed to log the dependency tree to a file
- Parameter 'mode' was set to '<mode>' while expected one of '
- Failed to resolve application model <appArtifact> dependenci
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/90eede59948069ff.
Report an issue: GitHub.