{"record":{"id":"c6e969cf7adf14ad","repo":"quarkusio/quarkus","slug":"failed-to-resolve-extension-catalog-of-bomcoords","errorCode":null,"errorMessage":"Failed to resolve extension catalog of ${bomCoords} from ${registryIds}","messagePattern":"Failed to resolve extension catalog of (.+?) from (.+?)","errorType":"exception","errorClass":"RegistryResolutionException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/ExtensionCatalogResolver.java","lineNumber":712,"sourceCode":"                } catch (RegistryResolutionException e) {\n                    if (registries.size() == i + 1) {\n                        throw e;\n                    }\n                    log.debug(\"%s\", e.getLocalizedMessage());\n                }\n            }\n\n            if (catalog == null) {\n                final StringBuilder buf = new StringBuilder();\n                buf.append(\"Failed to resolve extension catalog of \")\n                        .append(PlatformArtifacts.ensureBomArtifact(bom).toCompactCoords())\n                        .append(\" from \");\n                buf.append(registries.get(0).getId());\n                for (int i = 1; i < registries.size(); ++i) {\n                    buf.append(\", \").append(registries.get(i));\n                }\n                log.warn(buf.toString());\n                throw new RegistryResolutionException(buf.toString());\n            }\n\n            if (quarkusVersion == null) {\n                quarkusVersion = catalog.getQuarkusCoreVersion();\n            }\n\n            Map<String, Object> md = catalog.getMetadata();\n            if (md != null) {\n                Object o = md.get(\"platform-release\");\n                if (o instanceof Map platformRelease) {\n                    o = platformRelease.get(\"platform-key\");\n                    if (o instanceof String platformKey) {\n                        if (!preferredPlatformKeys.add(platformKey)) {\n                            continue;\n                        }\n                        final Platform.Mutable platform = Platform.builder().setPlatformKey(platformKey);\n\n                        final PlatformStream.Mutable stream = PlatformStream.builder()","sourceCodeStart":694,"sourceCodeEnd":730,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/ExtensionCatalogResolver.java#L694-L730","documentation":"A RegistryResolutionException thrown when registries that were asked to provide the platform BOM failed to resolve its extension catalog. The message lists the BOM coordinates and all registry ids that were tried; it is also logged as a warning before being thrown.","triggerScenarios":"During ExtensionCatalogResolver initialization, after all registries associated with a platform BOM throw exceptions attempting to resolve the catalog of that BOM, the aggregated failure is rethrown as this RegistryResolutionException.","commonSituations":"Platform BOM version not published to the registries; registry HTTP errors/timeouts during catalog fetch; BOM coordinates typo in the tooling request; registry degraded/unavailable at request time.","solutions":["Verify the BOM coordinates exist in the listed registries (check their catalog endpoints)","Check network/proxy access to the listed registry ids and retry","Pick a platform BOM version that is published in the configured registries","Inspect the per-registry exceptions logged before this error for the root HTTP/parse failure"],"exampleFix":"// before\n<platform-bom>io.quarkus.platform:quarkus-bom:999.0.0</platform-bom>\n// after (released version)\n<platform-bom>io.quarkus.platform:quarkus-bom:3.15.1</platform-bom>","handlingStrategy":"try-catch","validationCode":"// Confirm BOM coordinates are published before resolution\nmvn dependency:get -Dartifact=io.quarkus.platform:quarkus-bom:<version>:pom","typeGuard":null,"tryCatchPattern":"try { resolver.resolveExtensionCatalog(); } catch (RegistryResolutionException e) { log.error(\"Platform catalog unresolved: \" + e.getMessage(), e.getCause()); throw e; }","preventionTips":["Use released, published platform BOM versions","Verify registry connectivity and catalog endpoints before tooling runs","Log and inspect per-registry causes for HTTP errors","Retry transient network failures before surfacing the error"],"tags":["registry-client","network","platform-bom"],"backgroundTag":"platform-catalog-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"}