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

  1. Check network access to https://registry.quarkus.io (curl it) and configure proxy settings in gradle.properties (systemProp.https.proxyHost/Port).
  2. Review the wrapped cause with --stacktrace to see the underlying resolution error.
  3. Verify the Quarkus platform/BOM is correctly declared in build.gradle.
  4. If using a custom registry, validate its URL in the build configuration.
  5. 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

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


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