{"record":{"id":"67a93b92958e9078","repo":"quarkusio/quarkus","slug":"specifying-sslcontext-is-not-supported-at-the-mome","errorCode":null,"errorMessage":"Specifying SSLContext is not supported at the moment","messagePattern":"Specifying SSLContext is not supported at the moment","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientBuilderImpl.java","lineNumber":121,"sourceCode":"    public ClientBuilderImpl() {\n        configuration = new ConfigurationImpl(RuntimeType.CLIENT);\n    }\n\n    @Override\n    public ClientBuilder withConfig(Configuration config) {\n        this.configuration = new ConfigurationImpl(config);\n        return this;\n    }\n\n    public ClientBuilder tlsConfig(TlsConfig tlsConfig) {\n        this.tlsConfig = tlsConfig;\n        return this;\n    }\n\n    @Override\n    public ClientBuilder sslContext(SSLContext sslContext) {\n        // TODO\n        throw new UnsupportedOperationException(\"Specifying SSLContext is not supported at the moment\");\n    }\n\n    @Override\n    public ClientBuilder keyStore(KeyStore keyStore, char[] password) {\n        this.keyStore = keyStore;\n        this.keystorePassword = password;\n        return this;\n    }\n\n    @Override\n    public ClientBuilder trustStore(KeyStore trustStore) {\n        return trustStore(trustStore, null);\n    }\n\n    public ClientBuilder trustStore(KeyStore trustStore, char[] password) {\n        this.trustStore = trustStore;\n        this.trustStorePassword = password;\n        return this;","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientBuilderImpl.java#L103-L139","documentation":"The RESTEasy Reactive client does not implement the JAX-RS ClientBuilder.sslContext() hook; it deliberately throws UnsupportedOperationException with this message. Custom SSL contexts must instead be configured through the keyStore/trustStore setters or Quarkus TLS registry configuration.","triggerScenarios":"Calling ClientBuilder.newBuilder().sslContext(mySslContext) or QuarkusRestClientBuilder.sslContext(...) when programmatically building a client.","commonSituations":"Migrating code written for the classic RESTEasy client or Jersey where sslContext() works; trying to set custom trust material or client certs via SSLContext; porting a MicroProfile REST Client programmatic builder from another implementation.","solutions":["Use keyStore(keyStore, password) and/or trustStore(trustStore) on the builder instead of sslContext()","Configure TLS via Quarkus properties (quarkus.tls.key-store/trust-store or quarkus.rest-client.<name>.key-store/trust-store) and build the client from config","If you truly need a custom SSLContext, build the underlying Vert.x HttpClient options yourself or fall back to the classic RESTEasy client implementation","Check the extension version — support may exist in newer releases; otherwise track the TODO in ClientBuilderImpl"],"exampleFix":"// before\nClient client = ClientBuilder.newBuilder().sslContext(sslContext).build();\n\n// after\nClient client = ClientBuilder.newBuilder()\n        .keyStore(keyStore, keyStorePassword)\n        .trustStore(trustStore)\n        .build();","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    builder = builder.sslContext(ctx);\n} catch (UnsupportedOperationException e) {\n    builder = builder.keyStore(keyStore, keyPass).trustStore(trustStore);\n}","preventionTips":["Never use sslContext() with the RESTEasy Reactive client; go straight to keyStore/trustStore","Centralize client construction in one factory so unsupported builders fail fast in one place","Configure TLS via quarkus.tls.* / quarkus.rest-client.<name>.* properties instead of programmatic SSL","Pin and review client library versions when porting from classic RESTEasy/Jersey"],"tags":["ssl","tls","rest-client","unsupported-operation","configuration"],"backgroundTag":"unsupported-ssl-configuration","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}