quarkusio/quarkus · error · VertxException

HttpBinderConfiguration was not found

Error message

HttpBinderConfiguration was not found

What it means

Vert.x calls this adapter's createHttpServerMetrics when an HTTP server starts; VertxMeterBinderAdapter needs an injected HttpBinderConfiguration to know whether/what HTTP server metrics to collect. When that configuration is null the adapter cannot build metrics and throws VertxException. Null configuration means the micrometer HTTP binder was not wired by the build (e.g. the HTTP-related micrometer config was not produced at build time).

Source

Thrown at extensions/micrometer/runtime/src/main/java/io/quarkus/micrometer/runtime/binder/vertx/VertxMeterBinderAdapter.java:72

    public VertxMetricsFactory getFactory() {
        return this;
    }

    @Override
    public VertxMetrics metrics(VertxOptions vertxOptions) {
        return this;
    }

    @Override
    public MetricsOptions newOptions() {
        return this;
    }

    @Override
    public HttpServerMetrics<?, ?> createHttpServerMetrics(final HttpServerConfig options,
            final SocketAddress tcpLocalAddress, final SocketAddress localAddress) {
        if (httpBinderConfiguration == null) {
            throw new VertxException("HttpBinderConfiguration was not found");
        }
        if (openTelemetryContextUnwrapper == null) {
            throw new VertxException("OpenTelemetryContextUnwrapper was not found");
        }
        if (httpBinderConfiguration.isServerEnabled()) {
            log.debugf("Create HttpServerMetrics with options %s and address %s", options, localAddress);
            return new VertxHttpServerMetrics(Metrics.globalRegistry, httpBinderConfiguration, openTelemetryContextUnwrapper,
                    options, longAdderGauges);
        }
        return null;
    }

    @Override
    public HttpClientMetrics<?, ?> createHttpClientMetrics(HttpClientConfig config) {
        if (httpBinderConfiguration == null) {
            return null;
        }
        if (httpBinderConfiguration.isClientEnabled()) {

View on GitHub (pinned to e1c734241f)

Solutions

  1. Ensure quarkus-micrometer is properly paired with the HTTP extension in use and rebuild (mvn clean install) so the build step producing HttpBinderConfiguration runs
  2. Check quarkus.micrometer.binder.http-server.enabled=true (or leave default) so the HTTP binder config is produced
  3. If constructing VertxMeterBinderAdapter manually (tests), set httpBinderConfiguration before Vert.x creates server metrics
  4. Verify no version mismatch between quarkus-vertx-http and quarkus-micrometer; align versions via the Quarkus BOM

Example fix

// before (manual construction in a test)
VertxMeterBinderAdapter adapter = new VertxMeterBinderAdapter();
// httpBinderConfiguration == null -> VertxException

// after
VertxMeterBinderAdapter adapter = new VertxMeterBinderAdapter();
adapter.httpBinderConfiguration = HttpBinderConfiguration.activate(
        true, false, List.of(), List.of());
Defensive patterns

Strategy: validation

Validate before calling

if (adapter.httpBinderConfiguration == null) {
    throw new IllegalStateException("Wire HttpBinderConfiguration before Vert.x creates server metrics");
}

Try / catch

try {
    HttpServerMetrics<?, ?> m = adapter.createHttpServerMetrics(options, tcpAddr, localAddr);
} catch (VertxException e) {
    log.errorf("HTTP metrics binder misconfigured: %s", e.getMessage());
    throw e;
}

Prevention

When it happens

Trigger: Vert.x creates an HTTP server (e.g. quarkus-vertx-http or reactive routes) while the micrometer extension's HttpBinderConfiguration bean was absent — e.g. quarkus-micrometer present but the HTTP metrics binder not initialized, or the adapter constructed manually/partially in tests with httpBinderConfiguration left null.

Common situations: Using Vert.x HTTP server directly in an app where micrometer registry exists but HTTP binder config wasn't created (micrometer added but relevant HTTP extension versions mismatched); constructing VertxMeterBinderAdapter in unit tests without setting the config field; extension ordering/conditional build issues after upgrading quarkus-micrometer or vertx-http.

Related errors


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