{"record":{"id":"450f9847acab97dc","repo":"quarkusio/quarkus","slug":"quarkus-extension-registry-is-not-available","errorCode":null,"errorMessage":"Quarkus extension registry is not available","messagePattern":"Quarkus extension registry is not available","errorType":"exception","errorClass":"RegistryResolutionException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/ExtensionCatalogResolver.java","lineNumber":398,"sourceCode":"            }\n        }\n\n        void addUpstreamExtensionCatalogs(String quarkusCoreVersion, Set<String> processedPlatformKeys)\n                throws RegistryResolutionException {\n            collectPlatformExtensions(quarkusCoreVersion, this, processedPlatformKeys);\n            int i = 0;\n            while (i < upstreamQuarkusVersions.size()) {\n                collectPlatformExtensions(upstreamQuarkusVersions.get(i++), this, processedPlatformKeys);\n            }\n            upstreamQuarkusVersions.clear();\n        }\n\n        ExtensionCatalog build() throws RegistryResolutionException {\n            appendAllNonPlatformExtensions();\n            if (catalogs.isEmpty()) {\n                final List<RegistryExtensionResolver> registries = ExtensionCatalogResolver.this.registries;\n                if (registries.isEmpty()) {\n                    throw new RegistryResolutionException(\"Quarkus extension registry is not available\");\n                }\n                if (registries.size() == 1) {\n                    throw new RegistryResolutionException(\"Quarkus extension registry \" + registries.get(0).getId()\n                            + \" did not provide any extension catalog\");\n                }\n                final StringBuilder buf = new StringBuilder();\n                buf.append(\"Quarkus extension registries \");\n                buf.append(registries.get(0).getId());\n                for (int i = 1; i < registries.size(); ++i) {\n                    buf.append(\", \").append(registries.get(i).getId());\n                }\n                buf.append(\" did not provide any extension catalog\");\n                throw new RegistryResolutionException(buf.toString());\n            }\n\n            return CatalogMergeUtility.merge(catalogs);\n        }\n    }","sourceCodeStart":380,"sourceCodeEnd":416,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/ExtensionCatalogResolver.java#L380-L416","documentation":"A RegistryResolutionException thrown by ExtensionCatalogBuilder.build() when no registry produced any extension catalog at all and no registries are configured. It means the resolver had zero configured registries to consult, so no extension catalog can be assembled.","triggerScenarios":"resolveExtensionCatalog / resolveExtensionCatalogForStream -> ExtensionCatalogBuilder.build() after appendAllNonPlatformExtensions() leaves catalogs empty and ExtensionCatalogResolver.this.registries is empty.","commonSituations":"Missing registry-client configuration entirely; settings.xml lacking registryquarkus / quarkus-registry configuration; registries disabled via config; offline environment with no registry setup.","solutions":["Configure at least one Quarkus extension registry (e.g. registry.quarkus.io via the registry client config in ~/.m2/settings.xml or registry-client config file)","Check that registries are not disabled/excluded via quarkus.registry.* settings","Use the default registry client configuration by removing custom overrides that leave the registry list empty"],"exampleFix":"// before: empty registry config\n<quarkus.registries/>\n// after\n<quarkus.registries>\n  <quarkus-registry>\n    <url>https://registry.quarkus.io</url>\n  </quarkus-registry>\n</quarkus.registries>","handlingStrategy":"validation","validationCode":"if (resolver.getRegistries() == null || resolver.getRegistries().isEmpty()) {\n  throw new IllegalStateException(\"Configure at least one Quarkus registry before resolving catalogs\");\n}","typeGuard":null,"tryCatchPattern":"try { resolver.resolveExtensionCatalog(); } catch (RegistryResolutionException e) { log.error(\"Registry configuration missing: \" + e.getMessage()); throw e; }","preventionTips":["Always call resolver.load() (or equivalent config load) before resolution","Ship a default registry client config with at least registry.quarkus.io","Validate settings.xml registryquarkus sections in CI","Avoid blanket registry exclusions in shared configs"],"tags":["configuration","registry-client","empty-catalog"],"backgroundTag":"no-registries-configured","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"}