quarkusio/quarkus · error · MojoExecutionException
Failed to resolve the recommended Quarkus extension catalog
Error message
Failed to resolve the recommended Quarkus extension catalog from the configured extension registries
What it means
UpdateMojo (mvn quarkus:update) resolves the recommended extension catalog from the configured Quarkus extension registries. If resolution throws RegistryResolutionException, it is rethrown as MojoExecutionException 'Failed to resolve the recommended Quarkus extension catalog from the configured extension registries'. The registries could not be contacted or returned no usable catalog.
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/UpdateMojo.java:120
platformVersion);
targetCatalog = getExtensionCatalogResolver().resolveExtensionCatalog(List.of(targetPrimaryBom));
} else if (stream != null) {
var platformStream = PlatformStreamCoords.fromString(stream);
targetCatalog = getExtensionCatalogResolver().resolveExtensionCatalog(platformStream);
platformVersion = getPrimaryBom(targetCatalog).getVersion();
} else {
if (bomVersion != null) {
targetCatalog = getExtensionCatalogResolver().resolveExtensionCatalog(List.of(ArtifactCoords.pom(
this.bomGroupId == null ? ToolsConstants.DEFAULT_PLATFORM_BOM_GROUP_ID : this.bomGroupId,
this.bomArtifactId == null ? ToolsConstants.DEFAULT_PLATFORM_BOM_ARTIFACT_ID : this.bomArtifactId,
bomVersion)));
} else {
targetCatalog = getExtensionCatalogResolver().resolveExtensionCatalog();
}
platformVersion = getPrimaryBom(targetCatalog).getVersion();
}
} catch (RegistryResolutionException e) {
throw new MojoExecutionException(
"Failed to resolve the recommended Quarkus extension catalog from the configured extension registries", e);
}
final UpdateProject invoker = new UpdateProject(quarkusProject);
invoker.targetCatalog(targetCatalog);
invoker.targetPlatformVersion(platformVersion);
invoker.appModel(resolveApplicationModel());
if (rewritePluginVersion != null) {
invoker.rewritePluginVersion(rewritePluginVersion);
}
if (rewriteQuarkusUpdateRecipes != null) {
invoker.rewriteQuarkusUpdateRecipes(rewriteQuarkusUpdateRecipes);
}
if (rewriteAdditionalUpdateRecipes != null) {
invoker.rewriteAdditionalUpdateRecipes(rewriteAdditionalUpdateRecipes);
}
invoker.rewriteDryRun(rewriteDryRun);
// backward compatView on GitHub (pinned to e1c734241f)
Solutions
- Check network access to the registry URLs (curl https://registry.quarkus.io) and configure proxy settings (~/.m2/settings.xml proxies)
- Review quarkus.registry settings in .quarkus/config.yaml or ~/.quarkus/config.yaml for typos
- Retry later if the registry service is down; check Quarkus registry status
- Use a mirror/internal registry mirror and configure it as the registry source
Example fix
// before quarkus.registry=custom-broken.example.com // after quarkus.registry=registry.quarkus.io # or configure proxy in ~/.m2/settings.xml and retry
Defensive patterns
Strategy: retry
Validate before calling
// Pre-flight connectivity check to the registry: curl -fsSI https://registry.quarkus.io/ >/dev/null && echo reachable # and inspect registry config: cat ~/.quarkus/config.yaml 2>/dev/null; cat .quarkus/config.yaml 2>/dev/null
Try / catch
try { mojo.execute(); }
catch (MojoExecutionException e) {
if (e.getCause() instanceof RegistryResolutionException) {
log.warn("Registry unreachable; check proxy/VPN, retrying with backoff");
// retry with exponential backoff, then fail with guidance
} else throw e;
} Prevention
- Verify quarkus.registry config entries for typos before upgrading
- Configure corporate proxies in ~/.m2/settings.xml and TLS truststore
- Add an internal registry mirror for CI/offline environments
- Pin a catalog/registry version so resolution does not depend on live lookups
When it happens
Trigger: processProjectState calls getExtensionCatalogResolver().resolveExtensionCatalog() and the registry client throws RegistryResolutionException: registry URLs unreachable, registry.quarkus.redhat.com / registry.quarkus.io outage, proxy blocking HTTPS, or an invalid custom registry configured in .quarkus/config.yaml (quarkus.registry).
Common situations: Corporate proxy/firewall blocking registry hosts; offline development; misconfigured quarkus.registry.custom-maven-repo or registry URL; TLS certificate issues in constrained networks; registry service returning errors.
Related errors
- Failed to initialize Quarkus Maven extension manager
- Failed to resolve Quarkus extension catalog
- Failed to resolve the extension catalog for stream '${stream
- Failed to resolve application model <appArtifact> dependenci
- Failed to resolve the available updates
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/f01d9d8f36ae0ea9.
Report an issue: GitHub.