# Bind to IPv6 (\`http-host\`)

**URL:** <https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248>\
**Category:** Miscellanaeous\
**Created:** [April 28, 2022, 10:40pm UTC](https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248 "2022-04-28T22:40:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![acidsys](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@acidsys](https://forum.keycloak.org/u/acidsys)\
**Post date:** [April 28, 2022, 10:40pm UTC](https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248/1 "2022-04-28T22:40:22Z")

</div>

Hi,

what’s the correct syntax to have Keycloak 18 bind to IPv6?

I tried

`http-host=::`  
and  
`http-host=[::]`

but both make the program feel very offended:

> **Output**
>
> ```auto
> $ bin/kc.sh start-dev
> 2022-04-29 00:33:14,816 INFO [org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider] (main) Hostname settings: FrontEnd: sweetsuse, Strict HTTPS: false, Path: <request>, Strict BackChannel: false, Admin: <request>, Port: -1, Proxied: false
> 2022-04-29 00:33:15,511 WARN [org.infinispan.CONFIG] (keycloak-cache-init) ISPN000569: Unable to persist Infinispan internal caches as no global state enabled
> 2022-04-29 00:33:15,554 WARN [org.infinispan.PERSISTENCE] (keycloak-cache-init) ISPN000554: jboss-marshalling is deprecated and planned for removal
> 2022-04-29 00:33:15,568 INFO [org.infinispan.CONTAINER] (keycloak-cache-init) ISPN000556: Starting user marshaller 'org.infinispan.jboss.marshalling.core.JBossUserMarshaller'
> 2022-04-29 00:33:15,736 INFO [org.infinispan.CONTAINER] (keycloak-cache-init) ISPN000128: Infinispan version: Infinispan 'Triskaidekaphobia' 13.0.8.Final
> 2022-04-29 00:33:16,098 INFO [org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory] (main) Node name: node_660379, Site name: null
> 2022-04-29 00:33:16,667 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-1) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-15) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,667 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-8) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,667 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-10) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-3) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-5) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-2) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,667 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-6) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-13) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-4) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,668 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-7) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,667 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-0) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,667 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-9) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,669 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-12) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,669 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-11) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,669 ERROR [io.quarkus.vertx.core.runtime.VertxCoreRecorder] (vert.x-eventloop-thread-14) Uncaught exception received by Vert.x: java.lang.IllegalStateException: Result is already complete
> at io.vertx.core.Promise.fail(Promise.java:90)
> at io.quarkus.vertx.http.runtime.VertxHttpRecorder$WebDeploymentVerticle.lambda$setupTcpHttpServer$1(VertxHttpRecorder.java:1077)
> at io.vertx.core.impl.future.FutureImpl$3.onFailure(FutureImpl.java:153)
> at io.vertx.core.impl.future.FutureBase.emitFailure(FutureBase.java:75)
> at io.vertx.core.impl.future.FutureImpl.tryFail(FutureImpl.java:230)
> at io.vertx.core.impl.future.FixedMapping.onFailure(FixedMapping.java:36)
> at io.vertx.core.impl.future.FutureBase.lambda$emitFailure$1(FutureBase.java:69)
> at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
> at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:829)
> 
> 2022-04-29 00:33:16,809 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (development) mode
> 2022-04-29 00:33:16,810 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Unable to start HTTP server
> 2022-04-29 00:33:16,810 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: java.net.SocketException: Protocol family unavailable
> 2022-04-29 00:33:16,810 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Protocol family unavailable
> 2022-04-29 00:33:16,810 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) For more details run the same command passing the '--verbose' option. Also you can use '--help' to see the details about the usage of the particular command.
> 
> ```

Unfortunately I could not find any pointers in the [documentation](https://www.keycloak.org/server/configuration).

Thank you for any pointers!

---

<div class="post-metadata">

**Author:** ![ciphermenial](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/ciphermenial/32/4423_2.png) [@ciphermenial](https://forum.keycloak.org/u/ciphermenial)\
**Post date:** [June 21, 2022, 11:55pm UTC](https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248/2 "2022-06-21T23:55:34Z")

</div>

I was also looking into this. Previously I could do this on WIldfly but I can’t see how to do this with Quarkus.

```auto
java -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -
Djava.net.preferIPv4Stack=true -Dkc.home.dir=/srv/keycloak/bin/../ -Djboss.server.config.dir=/srv/keycloak/bin/../conf -Djava.util.logging
.manager=org.jboss.logmanager.LogManager -Dquarkus-log-max-startup-records=10000 -cp /srv/keycloak/bin/../lib/quarkus-run.jar io.quarkus.b
ootstrap.runner.QuarkusEntryPoint start

```

In Wildfly you could set preferIPv4Stack=false and preferIPv4Stack=true.

---

<div class="post-metadata">

**Author:** ![ciphermenial](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/ciphermenial/32/4423_2.png) [@ciphermenial](https://forum.keycloak.org/u/ciphermenial)\
**Post date:** [July 26, 2022, 12:21am UTC](https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248/3 "2022-07-26T00:21:10Z")

</div>

I have found a way to do it. I guess I could do it with JAVA\_OPTS but I was hoping I could do it with quarkus.properties file. Not really sure the best way to do it. I have modified the kc.sh script and changed the JAVA\_OPTS line to

```auto
   JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true -Dfile.encoding=UTF-8"

```

---

<div class="post-metadata">

**Author:** ![dasniko](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/dasniko/32/2969_2.png) [@dasniko](https://forum.keycloak.org/u/dasniko)\
**Post date:** [July 26, 2022, 6:59am UTC](https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248/4 "2022-07-26T06:59:08Z")

</div>

> [@ciphermenial](#):
>
> `-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true`

These are Java properties, not Quarkus properties, thus you can’t set them in `quarkus.properties` file.

Additionally, there’s no general need to modify the `kc.sh` script, just set your env var `JAVA_OPTS_APPEND` with the additional Java options and you are good to go.

---

<div class="post-metadata">

**Author:** ![ciphermenial](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/ciphermenial/32/4423_2.png) [@ciphermenial](https://forum.keycloak.org/u/ciphermenial)\
**Post date:** [September 7, 2022, 1:50am UTC](https://forum.keycloak.org/t/bind-to-ipv6-http-host/15248/6 "2022-09-07T01:50:14Z")

</div>

> [@ciphermenial](#):
>
> -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true

Have you tested it? This does not work because in kc.sh the option for -Djava.net.preferIPv4Stack is set to true by default. Adding to the JAVA\_OPTS\_APPEND has no effect.
