quarkusio/quarkus · error · RegistryResolutionException
Failed to load non-platform extension catalog from ${jsonFil
Error message
Failed to load non-platform extension catalog from ${jsonFile} What it means
MavenNonPlatformExtensionsResolver resolves the non-platform extensions catalog JSON from a local Maven repository file and parses it with ExtensionCatalog.mutableFromFile(). If parsing/loading throws any Exception, it is wrapped in RegistryResolutionException with the file path and the original cause attached. This distinguishes 'file downloaded but unreadable/unparseable' from 'artifact not found' (which returns null).
Source
Thrown at independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/client/maven/MavenNonPlatformExtensionsResolver.java:49
public ExtensionCatalog.Mutable resolveNonPlatformExtensions(String quarkusVersion)
throws RegistryResolutionException {
final ArtifactCoords baseCoords = config.getArtifact();
final Artifact catalogArtifact = new DefaultArtifact(baseCoords.getGroupId(),
baseCoords.getArtifactId(), quarkusVersion, baseCoords.getType(), baseCoords.getVersion());
log.debug("Resolving non-platform extension catalog %s", catalogArtifact);
final Path jsonFile;
try {
jsonFile = artifactResolver.resolve(catalogArtifact);
} catch (Exception e) {
log.debug("Failed to resolve non-platform extension catalog %s", catalogArtifact);
return null;
}
try {
return ExtensionCatalog.mutableFromFile(jsonFile);
} catch (Exception e) {
throw new RegistryResolutionException("Failed to load non-platform extension catalog from " + jsonFile, e);
}
}
}
View on GitHub (pinned to e1c734241f)
Solutions
- Inspect the file named in the message and validate its JSON (jq/cat the beginning).
- Delete the corrupted artifact from the local Maven repo cache and re-resolve to re-download.
- Check the intermediate cause (getCause()) to identify the exact parse error.
- Verify the mirror/proxy is not substituting error pages for the artifact.
- Call clearRegistryCache() and retry the resolution.
Example fix
// before
rm -rf ~/.m2/repository/io/quarkus/registry // then re-run resolution
// after — or guard in code
try {
catalog = resolver.resolveNonPlatformExtensions(version);
} catch (RegistryResolutionException e) {
resolver.clearRegistryCache();
catalog = resolver.resolveNonPlatformExtensions(version); // re-download
} Defensive patterns
Strategy: try-catch
Validate before calling
// Java
Path jsonFile = ...; // resolved catalog path
if (jsonFile != null && Files.exists(jsonFile)) {
try (var reader = Files.newBufferedReader(jsonFile)) {
if (reader.read() != '{') throw new IllegalStateException("Not JSON: " + jsonFile);
}
} Try / catch
// Java
try {
catalog = resolver.resolveNonPlatformExtensions(coreVersion);
} catch (RegistryResolutionException e) {
if (e.getMessage().startsWith("Failed to load non-platform extension catalog")) {
resolver.clearRegistryCache(); // purge corrupt artifact
catalog = resolver.resolveNonPlatformExtensions(coreVersion); // re-download
} else throw e;
} Prevention
- Check getCause() of RegistryResolutionException for the exact Jackson error.
- Purge ~/.m2 entries for io.quarkus.registry when cache corruption is suspected.
- Ensure mirrors return artifact bytes, not HTML error pages.
- Validate registry catalog JSON schema compatibility with your client version.
When it happens
Trigger: resolveNonPlatformExtensions() finds the downloaded non-platform catalog artifact for a given Quarkus core version, but ExtensionCatalog.mutableFromFile(jsonFile) fails — corrupt/truncated JSON, wrong artifact content (HTML error page saved as JSON), or Jackson mapping incompatibility.
Common situations: Corrupted local Maven cache (~/.m2) entry; a proxy or mirror returning an HTML error page stored as the artifact; a registry extension catalog JSON not matching the expected schema version.
Related errors
- Failed
- Failed to read descriptor of ${artifact}
- Invalid command line: ${cmdLine}
- Failed to parse Maven command line arguments
- Bad artifact coordinates , expected format is <groupId>:<art
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/f45e9a120e371a1c.
Report an issue: GitHub.