quarkusio/quarkus · error · MojoExecutionException
Failed to resolve the Quarkus extension catalog
Error message
Failed to resolve the Quarkus extension catalog
What it means
resolveExtensionCatalog resolves the Quarkus extension catalog either from configured registries or by merging the platforms imported by the project. Any exception while resolving the catalog from registries is wrapped in this MojoExecutionException, meaning the list of available extensions/platforms could not be determined.
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java:138
doExecute(quarkusProject, getMessageWriter());
}
protected MessageWriter getMessageWriter() {
return log == null ? log = new MojoMessageWriter(getLog()) : log;
}
protected Path baseDir() {
return project == null || project.getBasedir() == null ? Paths.get("").normalize().toAbsolutePath()
: project.getBasedir().toPath();
}
private ExtensionCatalog resolveExtensionCatalog() throws MojoExecutionException {
final ExtensionCatalogResolver catalogResolver = getExtensionCatalogResolver();
if (catalogResolver.hasRegistries()) {
try {
return catalogResolver.resolveExtensionCatalog(getImportedPlatforms());
} catch (Exception e) {
throw new MojoExecutionException("Failed to resolve the Quarkus extension catalog", e);
}
}
return ToolsUtils.mergePlatforms(collectImportedPlatforms(), catalogArtifactResolver());
}
protected ExtensionCatalogResolver getExtensionCatalogResolver() throws MojoExecutionException {
return catalogResolver == null ? catalogResolver = initExtensionCatalogResolver() : catalogResolver;
}
private ExtensionCatalogResolver initExtensionCatalogResolver() throws MojoExecutionException {
if (!QuarkusProjectHelper.isRegistryClientEnabled()) {
return ExtensionCatalogResolver.empty();
}
final ExtensionCatalogResolver catalogResolver;
try {
catalogResolver = QuarkusProjectHelper.getCatalogResolver(catalogArtifactResolver(), getMessageWriter());
if (refresh) {
catalogResolver.clearRegistryCache();View on GitHub (pinned to e1c734241f)
Solutions
- Verify the Quarkus platform version in the pom matches a version published in the registry
- Check network/proxy access to registry.quarkus.io and inspect the wrapped cause for details
- Fix or remove a broken custom registry configuration and retry with a registry cache refresh
Example fix
// before (nonexistent platform version) <quarkus.platform.version>999.0.0</quarkus.platform.version> // after <quarkus.platform.version>3.15.1</quarkus.platform.version>
Defensive patterns
Strategy: try-catch
Validate before calling
// verify platform version exists in the registry before building
// mvn dependency:get -Dartifact=io.quarkus.platform:quarkus-bom:${quarkus.platform.version}:pom Try / catch
try {
mojo.execute();
} catch (MojoExecutionException e) {
if (e.getMessage().equals("Failed to resolve the Quarkus extension catalog")) {
Throwable cause = e.getCause();
// inspect cause: fix registry URL / platform version / connectivity, then retry
} else {
throw e;
}
} Prevention
- Pin the Quarkus platform version to a published release in the registry
- Validate any custom registry endpoints return well-formed metadata
- Pre-fetch the platform BOM in CI to fail fast on connectivity issues
When it happens
Trigger: Running a Quarkus MoJo when catalogResolver.resolveExtensionCatalog(getImportedPlatforms()) throws — e.g. the registry/platform descriptor cannot be downloaded or parsed for the imported platform coordinates.
Common situations: Platform BOM coordinates changed after a Quarkus upgrade; a custom registry returns malformed metadata; offline build attempting to reach the registry; the io.quarkus.platform version referenced in the pom no longer exists in the registry.
Related errors
- Failed to resolve Quarkus extension catalog
- Failed to initialize Quarkus Maven extension manager
- Failed to initialize Quarkus extension resolver
- Failed to resolve the recommended Quarkus extension catalog
- Unable to parse pom file: ${pom}
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/11f86b5130148355.
Report an issue: GitHub.