quarkusio/quarkus · error · QuarkusCommandException
Failed to locate quarkus-core in the extension catalog
Error message
Failed to locate quarkus-core in the extension catalog
What it means
findQuarkusCore scans the resolved ExtensionCatalog for an extension whose artifactId equals QUARKUS_CORE ('quarkus-core'). If the catalog contains no such entry, the handler cannot anchor version resolution and throws. This guards the rest of project creation, which assumes the core extension is present in the catalog.
Source
Thrown at independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/CreateProjectCommandHandler.java:502
}
}
return result;
}
private static boolean containsQuarkusCore(List<Extension> extensions) {
for (Extension e : extensions) {
if (e.getArtifact().getArtifactId().equals(QUARKUS_CORE)) {
return true;
}
}
return false;
}
private static Extension findQuarkusCore(ExtensionCatalog extensionCatalog) throws QuarkusCommandException {
final Optional<Extension> quarkusCore = extensionCatalog.getExtensions().stream()
.filter(e -> e.getArtifact().getArtifactId().equals(QUARKUS_CORE)).findFirst();
if (quarkusCore.isEmpty()) {
throw new QuarkusCommandException("Failed to locate quarkus-core in the extension catalog");
}
return quarkusCore.get();
}
private static void addOriginsWithPreferences(final List<ExtensionOrigins> extOrigins, Extension e) {
ExtensionOrigins.Builder eoBuilder = null;
for (ExtensionOrigin c : e.getOrigins()) {
if (c instanceof ExtensionCatalog catalog) {
final OriginPreference op = (OriginPreference) c.getMetadata().get(Constants.REGISTRY_CLIENT_ORIGIN_PREFERENCE);
if (op != null) {
if (eoBuilder == null) {
eoBuilder = ExtensionOrigins.builder(e.getArtifact().getKey());
}
eoBuilder.addOrigin(catalog, op);
}
}
}
if (eoBuilder != null) {View on GitHub (pinned to e1c734241f)
Solutions
- Restore the official Quarkus registry configuration (remove custom quarkus.registry overrides) so the full catalog including quarkus-core is fetched.
- If operating a custom registry, publish quarkus-core in the catalog.
- Clear the cached registry data under the Quarkus registry cache directory and re-resolve.
- Verify the registry descriptor JSON actually contains io.quarkus:quarkus-core.
Example fix
// before (custom registry missing core) -Dquarkus.registry=https://internal.example.com/quarkus/registry/filtered.json // after -Dquarkus.registry=https://registry.quarkus.io (or remove override entirely)
Defensive patterns
Strategy: validation
Validate before calling
ExtensionCatalog catalog = /* resolved catalog */;
boolean corePresent = catalog.getExtensions().stream()
.anyMatch(e -> "quarkus-core".equals(e.getArtifact().getArtifactId()));
if (!corePresent) {
throw new IllegalStateException("Selected registry does not publish quarkus-core");
} Try / catch
try {
createProject(...);
} catch (QuarkusCommandException e) {
if (e.getMessage().equals("Failed to locate quarkus-core in the extension catalog")) {
// switch to the default registry and retry
} else throw e;
} Prevention
- Do not strip quarkus-core from custom registry descriptors
- Validate registry JSON contains io.quarkus:quarkus-core before publishing
- Clear corrupted registry caches
When it happens
Trigger: An ExtensionCatalog resolved via quarkusCore(...) that lacks any extension with artifactId 'quarkus-core' — typically a custom, filtered, or corrupted registry descriptor passed to the project creation API.
Common situations: Using a self-hosted/filtered registry mirror that strips core; hand-crafted catalog JSON missing quarkus-core; registry misconfiguration pointing at a platform that doesn't publish core.
Related errors
- Failed to resolve Quarkus extension catalog
- Failed to resolve the Quarkus extension catalog
- Failed to determine a compatible Quarkus version for the req
- Failed to initialize the Quarkus Maven extension manager
- Failed to resolve the Quarkus extension catalog
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/4c2b2bbe110681ce.
Report an issue: GitHub.