{"record":{"id":"b21b353e52ad4bc6","repo":"quarkusio/quarkus","slug":"failed-to-initialize-quarkus-extension-catalog-res","errorCode":null,"errorMessage":"Failed to initialize Quarkus extension catalog resolver","messagePattern":"Failed to initialize Quarkus extension catalog resolver","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java","lineNumber":74,"sourceCode":"        catalogResolver = getExtensionCatalogResolver(log);\n        if (catalogResolver.hasRegistries() && !limitExtensionsToImportedPlatforms) {\n            try {\n                return catalogResolver.resolveExtensionCatalog(platforms);\n            } catch (Exception e) {\n                throw new RuntimeException(\"Failed to resolve extension catalog\", e);\n            }\n        }\n        return ToolsUtils.mergePlatforms(platforms, extension().getAppModelResolver());\n    }\n\n    protected ExtensionCatalogResolver getExtensionCatalogResolver(MessageWriter log) {\n        if (catalogResolver == null) {\n            try {\n                catalogResolver = QuarkusProjectHelper.isRegistryClientEnabled()\n                        ? QuarkusProjectHelper.getCatalogResolver(log)\n                        : ExtensionCatalogResolver.empty();\n            } catch (RegistryResolutionException e) {\n                throw new RuntimeException(\"Failed to initialize Quarkus extension catalog resolver\", e);\n            }\n        }\n        return catalogResolver;\n    }\n\n    protected List<ArtifactCoords> importedPlatforms() {\n        final List<Dependency> bomDeps = listProjectBoms(project);\n        if (bomDeps.isEmpty()) {\n            throw new GradleException(\"No platforms detected in the project\");\n        }\n\n        final Configuration boms = project.getConfigurations()\n                .detachedConfiguration(bomDeps.toArray(new org.gradle.api.artifacts.Dependency[0]));\n        final Set<ArtifactKey> processedKeys = new HashSet<>(1);\n\n        List<ArtifactCoords> platforms = new ArrayList<>();\n        boms.getResolutionStrategy().eachDependency(d -> {\n            if (!d.getTarget().getName().endsWith(BootstrapConstants.PLATFORM_DESCRIPTOR_ARTIFACT_ID_SUFFIX)","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java#L56-L92","documentation":"QuarkusPlatformTask.getExtensionCatalogResolver lazily builds an ExtensionCatalogResolver for resolving the platform registry catalog. If QuarkusProjectHelper.getCatalogResolver(log) throws a RegistryResolutionException (e.g. it cannot contact or parse the configured registries), the task wraps it in a RuntimeException with this message. It signals the platform/registry configuration could not be used to initialize extension resolution.","triggerScenarios":"Running a Quarkus Gradle platform task (e.g. quarkusPlatformTasks like listExtensions/addExtension) when quarkus.registry.* points to an unreachable or invalid registry, network access fails, or the registry client returns an unparseable/invalid catalog response.","commonSituations":"Corporate proxy/firewall blocking registry.quarkus.io; mistyped quarkus.registry URL; offline CI builds; SSL certificate issues; broken custom registry configuration in gradle.properties or application config.","solutions":["Fix quarkus.registry endpoints in gradle.properties / application.properties so the URLs are reachable (test with curl).","Check network/proxy/SSL settings (HTTPS_PROXY, truststore) and retry; disable the registry client via quarkus.registry.enabled=false if not needed.","Clear stale registry cache under ~/.quarkus/ (e.g. broken cached catalogs) and rerun the task."],"exampleFix":"// before (gradle.properties)\nquarkus.registry=https://bad-registry.example.com\n\n// after\nquarkus.registry=https://registry.quarkus.io","handlingStrategy":"try-catch","validationCode":"// pre-check registry reachability before running the task\ndef endpoint = 'https://registry.quarkus.io'\ntry { new URL(endpoint).openConnection().connectTimeout = 5000 }.collect { } // throws if malformed/unreachable","typeGuard":null,"tryCatchPattern":"try { ./gradlew listExtensions } catch (RuntimeException e) { if (e.message.contains('Failed to initialize Quarkus extension catalog resolver')) { /* fix registry config or disable registry client */ } }","preventionTips":["Keep quarkus.registry endpoints reachable; test with curl in CI before builds.","Set quarkus.registry.enabled=false for offline builds if no custom registry is needed.","Clear ~/.quarkus cache when registry responses look stale or corrupt."],"tags":["gradle","platform","registry","network"],"backgroundTag":"registry-unreachable","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"}