quarkusio/quarkus · error · RegistryResolutionException

Quarkus extension registry is not available

Error message

Quarkus extension registry is not available

What it means

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.

Source

Thrown at independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/ExtensionCatalogResolver.java:398

            }
        }

        void addUpstreamExtensionCatalogs(String quarkusCoreVersion, Set<String> processedPlatformKeys)
                throws RegistryResolutionException {
            collectPlatformExtensions(quarkusCoreVersion, this, processedPlatformKeys);
            int i = 0;
            while (i < upstreamQuarkusVersions.size()) {
                collectPlatformExtensions(upstreamQuarkusVersions.get(i++), this, processedPlatformKeys);
            }
            upstreamQuarkusVersions.clear();
        }

        ExtensionCatalog build() throws RegistryResolutionException {
            appendAllNonPlatformExtensions();
            if (catalogs.isEmpty()) {
                final List<RegistryExtensionResolver> registries = ExtensionCatalogResolver.this.registries;
                if (registries.isEmpty()) {
                    throw new RegistryResolutionException("Quarkus extension registry is not available");
                }
                if (registries.size() == 1) {
                    throw new RegistryResolutionException("Quarkus extension registry " + registries.get(0).getId()
                            + " did not provide any extension catalog");
                }
                final StringBuilder buf = new StringBuilder();
                buf.append("Quarkus extension registries ");
                buf.append(registries.get(0).getId());
                for (int i = 1; i < registries.size(); ++i) {
                    buf.append(", ").append(registries.get(i).getId());
                }
                buf.append(" did not provide any extension catalog");
                throw new RegistryResolutionException(buf.toString());
            }

            return CatalogMergeUtility.merge(catalogs);
        }
    }

View on GitHub (pinned to e1c734241f)

Solutions

  1. 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)
  2. Check that registries are not disabled/excluded via quarkus.registry.* settings
  3. Use the default registry client configuration by removing custom overrides that leave the registry list empty

Example fix

// before: empty registry config
<quarkus.registries/>
// after
<quarkus.registries>
  <quarkus-registry>
    <url>https://registry.quarkus.io</url>
  </quarkus-registry>
</quarkus.registries>
Defensive patterns

Strategy: validation

Validate before calling

if (resolver.getRegistries() == null || resolver.getRegistries().isEmpty()) {
  throw new IllegalStateException("Configure at least one Quarkus registry before resolving catalogs");
}

Try / catch

try { resolver.resolveExtensionCatalog(); } catch (RegistryResolutionException e) { log.error("Registry configuration missing: " + e.getMessage()); throw e; }

Prevention

When it happens

Trigger: resolveExtensionCatalog / resolveExtensionCatalogForStream -> ExtensionCatalogBuilder.build() after appendAllNonPlatformExtensions() leaves catalogs empty and ExtensionCatalogResolver.this.registries is empty.

Common situations: Missing registry-client configuration entirely; settings.xml lacking registryquarkus / quarkus-registry configuration; registries disabled via config; offline environment with no registry setup.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/450f9847acab97dc. Report an issue: GitHub.