<div dir="auto"><div dir="ltr">I haven't faced any such exception, give me some time and I'll extract a minimal example with steps to reproduce the problem.<input name="virtru-metadata" type="hidden" value="{"email-policy":{"state":"closed","expirationUnit":"days","disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"enableNoauth":false,"persistentProtection":false,"expandedWatermarking":false,"expires":false,"isManaged":false,"sms":false},"attachments":{},"compose-id":"2","compose-window":{"secure":false}}"></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 6, 2025 at 1:41 PM Daniel Fuchs <<a href="mailto:daniel.fuchs@oracle.com" rel="noreferrer noreferrer" target="_blank">daniel.fuchs@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Josiah,<br>
<br>
When trying the same (I modified H3SimpleTest to not pass<br>
the SSLContext to the client, and tried various configuration<br>
with setting HTTP/3 on either the HttpRequest or client or both),<br>
I always get an exception of the form shown below.<br>
<br>
What result did you get? Didn't you get any exception, or maybe<br>
a different exception?<br>
<br>
javax.net.ssl.SSLHandshakeException: QUIC connection establishment failed<br>
at <br>
java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:1008)<br>
at <br>
java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133)<br>
at H3SimpleTest.testBasicRequests(H3SimpleTest.java:116)<br>
...<br>
Caused by: javax.net.ssl.SSLHandshakeException: QUIC connection <br>
establishment failed<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl$HandshakeFlow.sslHandshakeException(QuicConnectionImpl.java:608)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl$HandshakeFlow.failHandshakeCFs(QuicConnectionImpl.java:593)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.ConnectionTerminatorImpl.failHandshakeCFs(ConnectionTerminatorImpl.java:368)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.ConnectionTerminatorImpl.failHandshakeCFs(ConnectionTerminatorImpl.java:363)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.ConnectionTerminatorImpl.immediateClose(ConnectionTerminatorImpl.java:257)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.ConnectionTerminatorImpl.doTerminate(ConnectionTerminatorImpl.java:128)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.ConnectionTerminatorImpl.terminate(ConnectionTerminatorImpl.java:86)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl.processHandshakePacket(QuicConnectionImpl.java:2403)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl.processDecrypted(QuicConnectionImpl.java:1965)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl.decrypt(QuicConnectionImpl.java:741)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl.internalProcessIncoming(QuicConnectionImpl.java:1899)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.QuicConnectionImpl.incoming(QuicConnectionImpl.java:701)<br>
at <br>
java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)<br>
at <br>
java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)<br>
at <br>
java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)<br>
at <br>
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)<br>
at <br>
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)<br>
... 1 more<br>
Caused by: java.io.IOException: certificate_unknown<br>
at <br>
java.net.http/jdk.internal.net.http.quic.TerminationCause.toReportedCause(TerminationCause.java:131)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.TerminationCause.<init>(TerminationCause.java:49)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.TerminationCause$TransportError.<init>(TerminationCause.java:151)<br>
at <br>
java.net.http/jdk.internal.net.http.quic.TerminationCause.forException(TerminationCause.java:102)<br>
... 11 more<br>
<br>
<br>
On 06/11/2025 16:52, Josiah Noel wrote:<br>
> Indeed I'm using a self signed cert created by mkcert for the server. I <br>
> created a keystore out of it, and used the same sslcontext for both the <br>
> server and the client. Attached are my logs.<br>
<br>
</blockquote></div>