{"record":{"id":"44c229142d83e3c9","repo":"quarkusio/quarkus","slug":"couldn-t-resolve-the-quarkus-platform-catalog-sinc","errorCode":null,"errorMessage":"Couldn't resolve the Quarkus platform catalog since none of the Quarkus extension registries are available","messagePattern":"Couldn't resolve the Quarkus platform catalog since none of the Quarkus extension registries are available","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java","lineNumber":172,"sourceCode":"            catalogResolver = QuarkusProjectHelper.getCatalogResolver(catalogArtifactResolver(), getMessageWriter());\n            if (refresh) {\n                catalogResolver.clearRegistryCache();\n            }\n        } catch (RegistryResolutionException e) {\n            throw new MojoExecutionException(\"Failed to initialize Quarkus extension resolver\", e);\n        }\n        return catalogResolver;\n    }\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();","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java#L154-L190","documentation":"This MojoExecutionException is thrown by QuarkusProjectMojoBase.getImportedPlatforms when a Maven goal (e.g. quarkus:add-extension, quarkus:list-platforms) needs the Quarkus platform catalog but the configured ExtensionCatalogResolver has no extension registries available. Registries come from quarkus.registry settings or the default registry; without them, platform BOM resolution is impossible. It is thrown only when the project has no pom.xml file (project.getFile() == null) and no explicit BOM coordinates were given, since registry-based resolution is then the only source of the platform.","triggerScenarios":"Running a Quarkus Maven mojo outside a project directory (or with no pom.xml) while no extension registry is configured or reachable, e.g. registry client disabled via -DquarkusRegistryClient=false or no registry in ~/.quarkus/config.yaml.","commonSituations":"Running quarkus:add-extension / create-extension style goals in an empty directory; CI environments with the registry client disabled; corporate proxies blocking registry access; missing registry config in ~/.m2/settings.xml or quarkus registry config.","solutions":["Run the goal from a directory containing a pom.xml, or pass explicit BOM coordinates (-DplatformGroupId/-DplatformArtifactId/-DplatformVersion) so registry resolution is skipped","Enable the Quarkus registry client (remove -DquarkusRegistryClient=false) or add a registry to the Quarkus registry config (quarkus.assistant / registry config yaml)","Check network/proxy settings so the default Quarkus registry (registry.quarkus.io) is reachable","As a fallback, pin the platform explicitly: -DbomGroupId=io.quarkus.platform -DbomArtifactId=quarkus-bom -DbomVersion=<version>"],"exampleFix":"// before\nmvn io.quarkus:quarkus-maven-plugin:add-extension -Dextensions=\"rest\" (run in empty dir)\n// after\nmvn io.quarkus:quarkus-maven-plugin:add-extension -Dextensions=\"rest\" -DbomGroupId=io.quarkus.platform -DbomArtifactId=quarkus-bom -DbomVersion=3.8.1","handlingStrategy":"validation","validationCode":"if (!new File(\"pom.xml\").exists() && (System.getProperty(\"bomVersion\") == null)) {\n    // require explicit platform coordinates or cd into a project directory first\n}\n// also check registry availability:\n// boolean ok = quarkusProject.getExtensionCatalogResolver().hasRegistries();","typeGuard":null,"tryCatchPattern":"try { mojo getImportedPlatforms... } catch (MojoExecutionException e) { if (e.getMessage().contains(\"registries are available\")) { /* rerun with -DbomGroupId/-DbomArtifactId/-DbomVersion */ } }","preventionTips":["Run Quarkus mojos from a directory containing a valid pom.xml","Keep the Quarkus registry client enabled and registries configured","Pin explicit platform coordinates in CI to avoid registry dependency","Document proxy/whitelist requirements for registry.quarkus.io"],"tags":["maven","registry","platform-catalog","configuration"],"backgroundTag":"no-quarkus-registries-available","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"}