Keycloak 23.0.4 results in “page not found”

Hi Team,

I have tried the following Docker image and ec2 container for 23.0.4 and I getting “page not found” page when trying to start keycloak.
Please find and check the below details and help me to resolve it. Thank You!
I read the documentation for creating docker, but I do not get it to work for me.

Docker File:

FROM public.ecr.aws/docker/library/maven:3.8.7-openjdk-18-slim as maven-builder
COPY native-s3-pom.xml ./
RUN mvn package -f native-s3-pom.xml
FROM Quay as keycloak-builder
ENV KC_HEALTH_ENABLED=true
ENV KC_METRICS_ENABLED=true
ENV KC_DB=mysql
ENV KC_FEATURES=preview,token-exchange,admin-fine-grained-authz
ENV KC_CACHE_STACK=ec2
ENV KC_HTTP_RELATIVE_PATH=/auth
ENV PROXY_ADDRESS_FORWARDING=true
ENV KC_HTTP_ENABLED=true
ENV KC_PROXY=edge
RUN /opt/keycloak/bin/kc.sh build
FROM Quay
COPY --from=keycloak-builder /opt/keycloak/lib/quarkus/ /opt/keycloak/lib/quarkus/
COPY --from=keycloak-builder /opt/keycloak/providers/* /opt/keycloak/providers/
COPY themes /opt/keycloak/themes/
COPY keycloak.conf /opt/keycloak/conf/
WORKDIR /opt/keycloak
RUN /opt/keycloak/bin/kc.sh show-config
ENV KC_DB=mysql
ENV KC_DB_URL=<url?
ENV KC_DB_USERNAME=
ENV KC_DB_PASSWORD=
ENV KC_HOSTNAME=mydomain.com
ENV KC_HOSTNAME_STRICT=false
ENTRYPOINT [“/opt/keycloak/bin/kc.sh” , “start-dev” , “–hostname-strict-https=false”]
EXPOSE 22 8080 8443 9990 9993 7800

Logs:

January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at java.base@17.0.10/java.lang.Thread.run(Thread.java:840) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) 2024-01-29 06:57:36,190 WARN [io.vertx.core.impl.BlockedThreadChecker] (vertx-blocked-thread-checker) Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2201 ms, time limit is 2000 ms: io.vertx.core.VertxException: Thread blocked KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.theme.KeycloakSanitizerMethod.exec(KeycloakSanitizerMethod.java:47) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.MethodCall._eval(MethodCall.java:62) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Expression.eval(Expression.java:101) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.BuiltInsForOutputFormatRelated$AbstractConverterBI.calculateResult(BuiltInsForOutputFormatRelated.java:50) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.MarkupOutputFormatBoundBuiltIn._eval(MarkupOutputFormatBoundBuiltIn.java:40) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Expression.eval(Expression.java:101) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:104) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Environment.visit(Environment.java:371) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Environment.invokeMacro(Environment.java:813) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Environment.visit(Environment.java:335) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Environment.visit(Environment.java:341) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.core.Environment.process(Environment.java:314) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at freemarker.template.Template.process(Template.java:383) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.theme.freemarker.DefaultFreeMarkerProvider.processTemplate(DefaultFreeMarkerProvider.java:49) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.services.error.KeycloakErrorHandler.getResponse(KeycloakErrorHandler.java:107) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.services.error.KeycloakErrorHandler$1.run(KeycloakErrorHandler.java:62) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.services.error.KeycloakErrorHandler$1.run(KeycloakErrorHandler.java:59) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransactionWithResult(KeycloakModelUtils.java:382) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransactionWithResult(KeycloakModelUtils.java:365) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.keycloak.services.error.KeycloakErrorHandler.toResponse(KeycloakErrorHandler.java:58) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.server.core.RuntimeExceptionMapper.mapException(RuntimeExceptionMapper.java:99) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext.mapExceptionIfPresent(ResteasyReactiveRequestContext.java:337) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.server.handlers.ExceptionHandler.handle(ExceptionHandler.java:15) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:150) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:145) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.server.handlers.RestInitialHandler.beginProcessing(RestInitialHandler.java:48) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.server.vertx.ResteasyReactiveVertxHandler.handle(ResteasyReactiveVertxHandler.java:23) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at org.jboss.resteasy.reactive.server.vertx.ResteasyReactiveVertxHandler.handle(ResteasyReactiveVertxHandler.java:10) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1286) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:144) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$1.handle(HttpServerCommonHandlers.java:58) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$1.handle(HttpServerCommonHandlers.java:36) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1286) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:144) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder$13.handle(ResteasyReactiveRecorder.java:382) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder$13.handle(ResteasyReactiveRecorder.java:375) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1286) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:144) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RouterImpl.handle(RouterImpl.java:68) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.ext.web.impl.RouterImpl.handle(RouterImpl.java:37) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$3.handle(HttpServerCommonHandlers.java:99) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$3.handle(HttpServerCommonHandlers.java:96) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$2.handle(HttpServerCommonHandlers.java:82) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$2.handle(HttpServerCommonHandlers.java:65) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.VertxHttpRecorder$1.handle(VertxHttpRecorder.java:177) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.quarkus.vertx.http.runtime.VertxHttpRecorder$1.handle(VertxHttpRecorder.java:153) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.impl.EventLoopContext.emit(EventLoopContext.java:55) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.impl.DuplicatedContext.emit(DuplicatedContext.java:179) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:174) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.net.impl.ConnectionBase.read(ConnectionBase.java:159) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:153) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.http.impl.Http1xUpgradeToH2CHandler.channelRead(Http1xUpgradeToH2CHandler.java:124) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:61) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) KC-Cache-Upgrade
January 29, 2024 at 12:27 (UTC+5:30) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) KC-Cache-Upgrade
January 29, 2024 at 12:26 (UTC+5:30) 2024-01-29 06:56:37,098 WARN [org.keycloak.quarkus.runtime.KeycloakMain] (main) Running the server in development mode. DO NOT use this configuration in production. KC-Cache-Upgrade
January 29, 2024 at 12:26 (UTC+5:30) 2024-01-29 06:56:37,092 INFO [io.quarkus] (main) Profile dev activated. KC-Cache-Upgrade

There is a lot of weird things going on here.

Unfortunately the logs don’t include the part, where the exception was thrown initially. Also, the URL and the corresponding template would be helpful, especially, whether it is modified by your custom theme.

Something within freemarker does weird stuff and times out:

January 29, 2024 at 12:27 (UTC+5:30) 2024-01-29 06:57:36,190 WARN [io.vertx.core.impl.BlockedThreadChecker] (vertx-blocked-thread-checker) Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2201 ms, time limit is 2000 ms: io.vertx.core.VertxException: Thread blocked

How does your custom plugin relate to this? Does it have any interaction with the templating?

Another thing, which stroke me as odd, was the fact, that it is built with Java 18, which is EOL and Keycloak is compiled and run in Java 17. Is your plugin compatible with Java 17?