{"record":{"id":"091cf0db69efca8e","repo":"quarkusio/quarkus","slug":"failed-to-resolve-the-catalog-of-quarkus-platforms","errorCode":null,"errorMessage":"Failed to resolve the catalog of Quarkus platforms","messagePattern":"Failed to resolve the catalog of Quarkus platforms","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java","lineNumber":180,"sourceCode":"    }\n\n    protected List<ArtifactCoords> getImportedPlatforms() throws MojoExecutionException {\n        if (importedPlatforms == null) {\n            if (project.getFile() == null) {\n                if (bomGroupId == null && bomArtifactId == null && bomVersion == null) {\n                    return List.of();\n                }\n                final ExtensionCatalogResolver catalogResolver = getExtensionCatalogResolver();\n                if (!catalogResolver.hasRegistries()) {\n                    throw new MojoExecutionException(\n                            \"Couldn't resolve the Quarkus platform catalog since none of the Quarkus extension registries are available\");\n                }\n                ArtifactCoords platformBom;\n                try {\n                    platformBom = getSingleMatchingBom(bomGroupId, bomArtifactId, bomVersion,\n                            getExtensionCatalogResolver().resolvePlatformCatalog());\n                } catch (RegistryResolutionException e) {\n                    throw new MojoExecutionException(\"Failed to resolve the catalog of Quarkus platforms\", e);\n                }\n                if (platformBom == null && bomVersion != null) {\n                    platformBom = ArtifactCoords.pom(\n                            bomGroupId == null ? ToolsConstants.DEFAULT_PLATFORM_BOM_GROUP_ID : bomGroupId,\n                            bomArtifactId == null ? ToolsConstants.DEFAULT_PLATFORM_BOM_ARTIFACT_ID : bomArtifactId,\n                            bomVersion);\n                }\n                return importedPlatforms = platformBom == null ? List.of() : List.of(platformBom);\n            }\n            importedPlatforms = collectImportedPlatforms();\n        }\n        return importedPlatforms;\n    }\n\n    protected MavenArtifactResolver catalogArtifactResolver() throws MojoExecutionException {\n        return artifactResolver();\n    }\n","sourceCodeStart":162,"sourceCodeEnd":198,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java#L162-L198","documentation":"This MojoExecutionException wraps a RegistryResolutionException thrown while resolving the Quarkus platform catalog via the extension registries in QuarkusProjectMojoBase.getImportedPlatforms. It means the registry client was reachable/configured but the request to fetch the platform catalog failed (network error, invalid registry URL, or catalog artifact not found). The original RegistryResolutionException is attached as the cause.","triggerScenarios":"Calling getImportedPlatforms (via resolveExtensionCatalog) when the project has no pom.xml, no explicit BOM coordinates are set, and ExtensionCatalogResolver.resolvePlatformCatalog() throws RegistryResolutionException — e.g. registry endpoint unreachable or returns 404.","commonSituations":"Corporate proxy or firewall blocking registry.quarkus.io; misconfigured registry URL in Quarkus registry config; registry outage; offline builds attempting registry lookups; wrong quarkus.registry.* settings in ~/.m2/settings.xml.","solutions":["Inspect the cause (RegistryResolutionException) for the failing registry URL and fix the registry configuration or URL","Verify network/proxy connectivity to the configured registry endpoint (curl the URL)","Run the build offline with explicit platform coordinates instead of registry lookup: set platformGroupId/platformArtifactId/platformVersion in pom.xml plugin configuration","Clear stale cached registry data if the registry recently changed endpoints"],"exampleFix":"// before (settings causing registry dependency)\nmvn quarkus:list-platforms\n// after (no registry needed)\nmvn quarkus:list-platforms -DplatformGroupId=io.quarkus.platform -DplatformArtifactId=quarkus-bom -DplatformVersion=3.8.1","handlingStrategy":"try-catch","validationCode":"// pre-check connectivity to the registry endpoint before invoking the goal:\n// curl -fsS https://registry.quarkus.io (or your configured registry URL)","typeGuard":null,"tryCatchPattern":"try {\n    // run goal / resolvePlatformCatalog()\n} catch (MojoExecutionException e) {\n    if (e.getCause() instanceof RegistryResolutionException) {\n        // inspect registry URL, fall back to explicit platform coordinates\n    }\n}","preventionTips":["Configure a reachable, correct registry URL in the Quarkus registry config","Whitelist the registry host in corporate proxies/firewalls","Prefer explicit platform BOM coordinates over registry lookups in CI","Cache platform catalogs for offline builds"],"tags":["maven","network","registry","platform-catalog"],"backgroundTag":"registry-resolution-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}