quarkusio/quarkus · error · RegistryResolutionException

Extension catalog ${bomCoords} could not be resolved from ${

Error message

Extension catalog ${bomCoords} could not be resolved from ${registryIds}

What it means

ExtensionCatalogResolver failed to assemble a full extension catalog: none of the configured registries could resolve the preferred platform BOM coordinates for the requested (null/unspecified) Quarkus version, and no other catalog could be obtained. The resolver aggregates catalogs from Quarkus registries; when every registry comes back empty and quarkusVersion is null, it reports the BOM coords plus all consulted registry IDs. This is a resolution failure, not a parsing failure.

Source

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

            addOriginPreference(catalog, originPreference);
            catalogBuilder.addCatalog(catalog);
        }

        if (quarkusVersion == null) {
            if (catalogBuilder.catalogs.isEmpty()) {
                final StringBuilder buf = new StringBuilder();
                final Iterator<ArtifactCoords> boms = preferredPlatforms.iterator();
                buf.append(PlatformArtifacts.ensureBomArtifact(boms.next()).toCompactCoords());
                while (boms.hasNext()) {
                    buf.append(", ").append(PlatformArtifacts.ensureBomArtifact(boms.next()).toCompactCoords());
                }
                buf.append(" could not be resolved from ");
                RegistryExtensionResolver registry = registries.get(0);
                buf.append(registry.getId());
                for (int i = 1; i < registries.size(); ++i) {
                    buf.append(", ").append(registries.get(i).getId());
                }
                throw new RegistryResolutionException(buf.toString());
            }
        }
        catalogBuilder.addUpstreamExtensionCatalogs(quarkusVersion, preferredPlatformKeys);
    }

    public void clearRegistryCache() throws RegistryResolutionException {
        for (RegistryExtensionResolver registry : registries) {
            registry.clearCache();
        }
    }

    private void ensureRegistriesConfigured() throws RegistryResolutionException {
        final int registriesTotal = registries.size();
        if (registriesTotal == 0) {
            throw new RegistryResolutionException("No registries configured");
        }
    }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Check network connectivity to the registry endpoints listed in the message (e.g. curl the registry URL).
  2. Verify registry configuration in .quarkus/config.yaml (or RegistryConfig) points to valid registryquarkus URLs.
  3. Run with -Dquarkus-registry=debug or enable logging to see per-registry resolution failures (HTTP 404/timeout).
  4. Add a registry that hosts the requested BOM, or pin quarkusVersion to one that is available.
  5. Run mvn -U / clearRegistryCache() to purge stale cached registry data and retry.

Example fix

// before
resolver.resolveExtensionCatalog(null, boms);
// after
resolver.resolveExtensionCatalog("3.2.5.Final", boms); // pin a version actually hosted by the configured registries
Defensive patterns

Strategy: retry

Validate before calling

// Java
if (resolver.getRegistries().isEmpty()) {
    throw new IllegalStateException("Configure at least one registry before resolving");
}
// verify network to each registry endpoint
for (var r : resolver.getRegistries()) {
    System.out.println("registry: " + r.getId());
}

Try / catch

// Java
try {
    catalog = resolver.resolveExtensionCatalog(quarkusVersion, preferredPlatforms);
} catch (RegistryResolutionException e) {
    resolver.clearRegistryCache();
    catalog = resolver.resolveExtensionCatalog(quarkusVersion, preferredPlatforms); // retry once
}

Prevention

When it happens

Trigger: Calling resolveExtensionCatalog() (or similar) with quarkusVersion==null while every configured RegistryExtensionResolver returns null/empty for the preferred platform BOMs (e.g. io.quarkus.platform:quarkus-bom) — typically unreachable registries, wrong registry URLs, or a BOM version not published on any configured registry.

Common situations: Corporate proxy/firewall blocking registry.quarkus.io; typos or stale entries in .quarkus/config.yaml registry list; querying a Quarkus version that a private/internal registry does not host; offline builds with no local Maven cache of the BOM.

Related errors


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