Old admin console works, new one doesn't

We have been successfully using Keycloak to secure an application for roughly a year. Recently we heard that the old admin console would be deprecated eventually, and so we decided to switch to the new one to get familiar with it.

In our understanding, the way to do this was to switch the admin console theme for the master realm to keycloak.v2.

However, after doing this, we can no longer access the admin console at all. Upon trying to log in, all we see is a blue spinning ring loading icon, and it loads indefinitely.

We had to manually go into the database and change the entry for the theme back to the old value in order to get back into the console. Everything works perfectly fine when using the old console.

Did we do it wrong? If yes, how should we correctly enable the new console?

We still have no idea what the issue was, but updating Keycloak from 19.0.3 to 20.0.3 fixed it.

Hi,
My KC version 19.0.3 was working well, after updating to 20.0.3 it throws an error related to productNameFull in the themes/keycloak/welcome/index.ftl. Here is the logs from pod running in my cluster.

Caused by: org.keycloak.theme.FreeMarkerException: Failed to process template index.ftl
at org.keycloak.theme.freemarker.DefaultFreeMarkerProvider.processTemplate(DefaultFreeMarkerProvider.java:52)
at org.keycloak.quarkus.runtime.services.resources.QuarkusWelcomeResource.createWelcomePage(QuarkusWelcomeResource.java:203)
… 46 more
Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> productNameFull [in template “index.ftl” at line 26, column 25]


Tip: If the failing expression is known to legally refer to something that’s sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace (“~” means nesting-related):
- Failed at: ${productNameFull} [in template “index.ftl” at line 26, column 23]

    at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
    at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:481)
    at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:401)
    at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:370)
    at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
    at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
    at freemarker.core.Environment.visit(Environment.java:347)
    at freemarker.core.Environment.visit(Environment.java:353)
    at freemarker.core.Environment.process(Environment.java:326)
    at freemarker.template.Template.process(Template.java:383)
    at org.keycloak.theme.freemarker.DefaultFreeMarkerProvider.processTemplate(DefaultFreeMarkerProvider.java:49)
    ... 47 more

Any insights would be appreciated.

Don‘t waste your time with v20, it‘s pretty old, we are currently on 25!