quarkusio/quarkus · critical · ConfigurationException

Proxy configuration '${name}' was specified, but no Proxy co

Error message

Proxy configuration '${name}' was specified, but no Proxy configuration registry could be found.

What it means

When a proxy configuration name is specified for a GraphQL client but no ProxyConfigurationRegistry bean could be found at build time, the recorder throws this ConfigurationException. Without the registry there is no way to resolve the named proxy, so startup fails intentionally rather than silently ignoring the proxy setting.

Source

Thrown at extensions/smallrye-graphql-client/runtime/src/main/java/io/quarkus/smallrye/graphql/client/runtime/SmallRyeGraphQLClientRecorder.java:288

            ProxyConfigurationRegistry proxyConfigurationRegistry = Arc.container().select(ProxyConfigurationRegistry.class)
                    .orNull();
            if (proxyConfigurationRegistry != null) {
                if (clientConfig.proxyConfigurationName().isPresent()) {
                    // explicit proxy config
                    Optional<ProxyConfiguration> namedConfig = proxyConfigurationRegistry
                            .get(clientConfig.proxyConfigurationName());
                    if (namedConfig.isEmpty()) {
                        throw new ConfigurationException("Proxy configuration '" + clientConfig.proxyConfigurationName().get()
                                + "' was specified, but it does not exist.");
                    }
                    return namedConfig;
                } else {
                    // no explicit proxy config -> get the default proxy configuration if it exists
                    return proxyConfigurationRegistry.get(Optional.empty());
                }
            } else {
                if (clientConfig.proxyConfigurationName().isPresent()) {
                    throw new ConfigurationException("Proxy configuration '" + clientConfig.proxyConfigurationName().get()
                            + "' was specified, but no Proxy configuration registry could be found.");
                }
            }
        }
        return Optional.empty();
    }

    record TlsClientInfo(String tlsConfigName, HttpClient httpClient) {
    }
}

View on GitHub (pinned to e1c734241f)

Solutions

  1. Add the dependency/extension that provides ProxyConfigurationRegistry (e.g. quarkus-smallrye-graphql-client with proxy support)
  2. Upgrade Quarkus to a version with proxy configuration registry support
  3. Remove the proxy-configuration-name property so the recorder skips proxy resolution

Example fix

// before — property set, registry absent
quarkus.smallrye-graphql-client.my-client.proxy-configuration-name=corp-proxy

// after — either remove the property or add the module providing the registry
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-smallrye-graphql-client</artifactId>
</dependency>
Defensive patterns

Strategy: validation

Validate before calling

// Guard: only set a proxy name if the registry type exists on the classpath
Class.forName("io.quarkus.runtime.ProxyConfigurationRegistry", false,
        Thread.currentThread().getContextClassLoader());

Try / catch

try {
    buildClientConfig();
} catch (ConfigurationException e) {
    if (e.getMessage().contains("no Proxy configuration registry")) {
        throw new IllegalStateException("Proxy registry missing: add the providing extension or unset proxy-configuration-name", e);
    }
    throw e;
}

Prevention

When it happens

Trigger: clientConfig.proxyConfigurationName() is present while proxyConfigurationRegistry is null — the proxy registry support is not present in the build (missing extension/dependency contributing ProxyConfigurationRegistry).

Common situations: Application built without the extension providing the proxy registry while GraphQL client config still names a proxy; relying on raw SmallRye client artifacts instead of the Quarkus extension; version downgrade losing the registry.

Related errors


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