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

  1. Verify quarkus.platform.groupId/artifactId/version match a published BOM and update them
  2. Run `mvn quarkus:go-offline -U` to refresh platform metadata
  3. Check the AppModelResolverException cause for the specific unresolvable artifact
  4. Ensure the module is a Quarkus app (quarkus core dependency + platform BOM imported)
  5. 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

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


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/90eede59948069ff. Report an issue: GitHub.