quarkusio/quarkus · error · MojoExecutionException

Failed to resolve Quarkus extension catalog

Error message

Failed to resolve Quarkus extension catalog

What it means

Thrown when resolveExtensionsCatalog (delegating to CreateProjectMojo) throws a RegistryResolutionException — the Quarkus extension registry/catalog could not be resolved from the configured registries. The JBang generator needs this catalog to pick codestarts and extensions.

Solutions

  1. Check network connectivity to the Quarkus registry and Maven Central (curl the registry URL)
  2. Verify quarkus.platform.group-id/artifact-id/version resolve in your repositories
  3. Fix custom registry configuration (quarkus.registries in settings or project properties)
  4. Inspect the RegistryResolutionException cause with -X; if behind a proxy, configure it in settings.xml

Example fix

// before
mvn quarkus:create-jbang  // offline laptop
// after
# connect to network / configure proxy, then
mvn quarkus:create-jbang
Defensive patterns

Strategy: retry

Validate before calling

// check registry availability before generating
java.net.http.HttpClient c = java.net.http.HttpClient.newHttpClient();
var resp = c.send(java.net.http.HttpRequest.newBuilder(java.net.URI.create("https://registry.quarkus.io/maven/io/quarkus/platform/quarkus-bom/maven-metadata.xml")).build(), java.net.http.HttpResponse.BodyHandlers.discarding());
if (resp.statusCode() >= 400) throw new IllegalStateException("Quarkus registry unreachable");

Try / catch

try {
    mvn quarkus:create-jbang ...
} catch (MojoExecutionException e) {
    if (e.getMessage().contains("Failed to resolve Quarkus extension catalog")
            && e.getCause() instanceof org.apache.maven.plugin.MojoExecutionException) {
        logger.error("Registry resolution failed — verify network/proxy, then retry with -X");
        // retry once after connectivity is restored
    }
}

Prevention

When it happens

Trigger: CreateProjectMojo.resolveExtensionsCatalog(...) throws RegistryResolutionException in CreateJBangMojo.execute() — registry endpoints unreachable, registry coordinates wrong, or catalog artifact not downloadable.

Common situations: Offline builds or blocked network to registry.quarkus.io / Maven Central, custom quarkus.registries misconfigured, wrong quarkus.platform version pointing to a non-existent BOM, corporate proxy intercepting HTTPS.

Related errors


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

Appendix: source

Thrown at devtools/maven/src/main/java/io/quarkus/maven/CreateJBangMojo.java:112

        try {
            mvn = MavenArtifactResolver.builder()
                    .setRepositorySystem(repoSystem)
                    .setRepositorySystemSession(
                            getLog().isDebugEnabled() ? repoSession : MojoUtils.muteTransferListener(repoSession))
                    .setRemoteRepositories(repos)
                    .setRemoteRepositoryManager(remoteRepoManager)
                    .build();
        } catch (Exception e) {
            throw new MojoExecutionException("Failed to initialize Maven artifact resolver", e);
        }

        final MessageWriter log = new MojoMessageWriter(getLog());
        ExtensionCatalog catalog;
        try {
            catalog = CreateProjectMojo.resolveExtensionsCatalog(this, bomGroupId, bomArtifactId, bomVersion, null,
                    QuarkusProjectHelper.getCatalogResolver(mvn, log), mvn, log);
        } catch (RegistryResolutionException e) {
            throw new MojoExecutionException("Failed to resolve Quarkus extension catalog", e);
        }

        final List<ResourceLoader> codestartsResourceLoader = codestartLoadersBuilder(log)
                .catalog(catalog)
                .artifactResolver(mvn)
                .build();
        final CreateJBangProject createJBangProject = new CreateJBangProject(QuarkusProject.of(projectDirPath, catalog,
                codestartsResourceLoader, log, BuildTool.MAVEN, new JavaVersion(javaVersion)))
                .extensions(extensions)
                .javaVersion(javaVersion)
                .setValue(NO_JBANG_WRAPPER, noJBangWrapper);

        boolean success;

        try {
            success = createJBangProject.execute().isSuccess();
        } catch (QuarkusCommandException e) {
            throw new MojoExecutionException("Failed to generate JBang Quarkus project", e);

View on GitHub (pinned to e1c734241f)