quarkusio/quarkus · error · GradleException
Unable to list extension categories
Error message
Unable to list extension categories
What it means
The QuarkusListCategories Gradle task (./gradlew listExtensions --category=...) resolves the extension catalog and prints available categories. Any Exception raised while collecting or rendering the categories is wrapped in this GradleException, typically reflecting a failure to resolve the extension registry/catalog.
Source
Thrown at devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusListCategories.java:68
ListCategories listExtensions = new ListCategories(quarkusProject)
.fromCli(isFromCli())
.format(getFormat());
listExtensions.execute();
if (!fromCli) {
GradleMessageWriter log = messageWriter();
if (DEFAULT_FORMAT.equalsIgnoreCase(format)) {
log.info("");
log.info(ListCategories.MORE_INFO_HINT, "--format=full");
}
log.info("");
log.info(ListCategories.LIST_EXTENSIONS_HINT,
"`./gradlew listExtensions --category=\"categoryId\"`");
}
} catch (Exception e) {
throw new GradleException("Unable to list extension categories", e);
}
}
}
View on GitHub (pinned to e1c734241f)
Solutions
- Check network access to https://registry.quarkus.io (curl it) and configure proxy settings in gradle.properties (systemProp.https.proxyHost/Port).
- Review the wrapped cause with --stacktrace to see the underlying resolution error.
- Verify the Quarkus platform/BOM is correctly declared in build.gradle.
- If using a custom registry, validate its URL in the build configuration.
- Pre-populate the catalog by running the task once with network access, or use --offline with a warm cache.
Example fix
// before: blocked by corporate proxy ./gradlew listCategories // after: gradle.properties systemProp.https.proxyHost=proxy.corp.com systemProp.https.proxyPort=8080
Defensive patterns
Strategy: retry
Validate before calling
// Check registry reachability before listing categories curl -fsSL https://registry.quarkus.io/ > /dev/null || echo "registry.quarkus.io unreachable: check proxy/DNS"
Try / catch
try {
./gradlew listCategories
} catch (GradleException e) {
if (e.getMessage().equals("Unable to list extension categories")) {
// inspect cause via --stacktrace; fix proxy/registry config, then retry
}
} Prevention
- Configure proxy system properties in gradle.properties for corporate networks.
- Warm the extension catalog cache before switching to offline mode.
- Validate custom registry URLs when overriding the default.
- Run ./gradlew build first to ensure the platform BOM resolves correctly.
When it happens
Trigger: Running ./gradlew listCategories when catalog resolution fails: no network access to registry.quarkus.io, misconfigured registry URL, or an invalid platform/BOM setup; raised in QuarkusListCategories.listCategories.
Common situations: Corporate proxies or firewalls blocking registry.quarkus.io; offline builds; quarkusRegistryClient/registry configuration errors in build config; wrong or unreachable platform versions; DNS failures on CI.
Related errors
- Unable to list extensions
- Failed to resolve extension catalog
- Unable to list platforms
- Failed to initialize Quarkus extension catalog resolver
- Failed to resolve the recommended Quarkus extension catalog
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/b6ba81e155df9c20.
Report an issue: GitHub.