[Solved] "Client Not Found" on Login page openremote with Virtualbox lubuntu 20.04

I’ve got this page

is there has any solution for this ? I run openremote with docker on VirtualBox with Lubuntu OS, Ram 2GB, 1 Core, I did step by step on openremote/README.md at master · openremote/openremote · GitHub

i got this response on terminal when request https://localhost on browser
proxy_1 | 22/Dec/2022:04:54:57 +0000 http 127.0.0.1:35016 0/-1/-1/-1/0 “GET / HTTP/1.1” 302 2/2/0/0/0 0/0
proxy_1 | 22/Dec/2022:04:54:58 +0000 https~ 172.18.0.1:58554 manager 0/0/1/0/1 “GET /manager_config.json HTTP/1.1” 404 2/1/0/0/0 0/0
keycloak_1 | 2022-12-22 05:54:58,469 WARN [org.keycloak.events] (executor-thread-1) type=CLIENT_INFO_ERROR, realmId=cd982f69-df6f-42b8-9142-bf759a587473, clientId=null, userId=null, ipAddress=172.18.0.4, error=invalid_token, reason=‘Not authorized to view client. Not valid token or client credentials provided.’
manager_1 | 2022-12-22 05:54:58.481 WARNING [WebService task-1 ] curity.keycloak.KeycloakIdentityProvider : Error loading client ‘openremote’ for realm ‘master’ from identity provider, exception from call to identity provider follows
manager_1 | com.google.common.util.concurrent.UncheckedExecutionException: javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized
manager_1 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
manager_1 | at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
manager_1 | at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
manager_1 | at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider.getKeycloakDeployment(KeycloakIdentityProvider.java:342)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider.lambda$init$0(KeycloakIdentityProvider.java:199)
manager_1 | at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89)
manager_1 | at org.keycloak.adapters.PreAuthActionsHandler.preflightCors(PreAuthActionsHandler.java:100)
manager_1 | at org.keycloak.adapters.PreAuthActionsHandler.handleRequest(PreAuthActionsHandler.java:75)
manager_1 | at org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:68)
manager_1 | at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
manager_1 | at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
manager_1 | at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
manager_1 | at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
manager_1 | at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
manager_1 | at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
manager_1 | at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
manager_1 | at java.base/java.lang.Thread.run(Thread.java:833)
manager_1 | Caused by: javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:226)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:200)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:62)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:154)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:115)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
manager_1 | at jdk.proxy2/jdk.proxy2.$Proxy113.getAdapterConfig(Unknown Source)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider$1.load(KeycloakIdentityProvider.java:437)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider$1.load(KeycloakIdentityProvider.java:429)
manager_1 | at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
manager_1 | at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
manager_1 | at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
manager_1 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
manager_1 | … 28 more
keycloak_1 | 2022-12-22 05:54:58,581 WARN [org.keycloak.events] (executor-thread-1) type=CLIENT_INFO_ERROR, realmId=cd982f69-df6f-42b8-9142-bf759a587473, clientId=null, userId=null, ipAddress=172.18.0.4, error=invalid_token, reason=‘Not authorized to view client. Not valid token or client credentials provided.’
manager_1 | 2022-12-22 05:54:58.659 WARNING [WebService task-1 ] curity.keycloak.KeycloakIdentityProvider : Error loading client ‘openremote’ for realm ‘master’ from identity provider, exception from call to identity provider follows
manager_1 | com.google.common.util.concurrent.UncheckedExecutionException: javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized
manager_1 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
manager_1 | at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
manager_1 | at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
manager_1 | at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider.getKeycloakDeployment(KeycloakIdentityProvider.java:342)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider.lambda$init$0(KeycloakIdentityProvider.java:199)
manager_1 | at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89)
manager_1 | at org.keycloak.adapters.undertow.ServletKeycloakAuthMech.authenticate(ServletKeycloakAuthMech.java:83)
manager_1 | at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:245)
manager_1 | at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:268)
manager_1 | at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.access$100(SecurityContextImpl.java:231)
manager_1 | at io.undertow.security.impl.SecurityContextImpl.attemptAuthentication(SecurityContextImpl.java:125)
manager_1 | at io.undertow.security.impl.SecurityContextImpl.authTransition(SecurityContextImpl.java:99)
manager_1 | at io.undertow.security.impl.SecurityContextImpl.authenticate(SecurityContextImpl.java:92)
manager_1 | at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:55)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
manager_1 | at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
manager_1 | at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
manager_1 | at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
manager_1 | at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)
manager_1 | at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
manager_1 | at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
manager_1 | at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
manager_1 | at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
manager_1 | at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
manager_1 | at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
manager_1 | at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
manager_1 | at java.base/java.lang.Thread.run(Thread.java:833)
manager_1 | Caused by: javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:226)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:200)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:62)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:154)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:115)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
manager_1 | at jdk.proxy2/jdk.proxy2.$Proxy113.getAdapterConfig(Unknown Source)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider$1.load(KeycloakIdentityProvider.java:437)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider$1.load(KeycloakIdentityProvider.java:429)
manager_1 | at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
manager_1 | at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
manager_1 | at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
manager_1 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
manager_1 | … 41 more
keycloak_1 | 2022-12-22 05:54:58,743 WARN [org.keycloak.events] (executor-thread-1) type=CLIENT_INFO_ERROR, realmId=cd982f69-df6f-42b8-9142-bf759a587473, clientId=null, userId=null, ipAddress=172.18.0.4, error=invalid_token, reason=‘Not authorized to view client. Not valid token or client credentials provided.’
manager_1 | 2022-12-22 05:54:58.749 WARNING [WebService task-1 ] curity.keycloak.KeycloakIdentityProvider : Error loading client ‘openremote’ for realm ‘master’ from identity provider, exception from call to identity provider follows
manager_1 | com.google.common.util.concurrent.UncheckedExecutionException: javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized
manager_1 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
manager_1 | at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
manager_1 | at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
manager_1 | at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider.getKeycloakDeployment(KeycloakIdentityProvider.java:342)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider.lambda$init$0(KeycloakIdentityProvider.java:199)
manager_1 | at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89)
manager_1 | at org.keycloak.adapters.undertow.UndertowAuthenticatedActionsHandler.handleRequest(UndertowAuthenticatedActionsHandler.java:61)
manager_1 | at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
manager_1 | at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
manager_1 | at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
manager_1 | at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
manager_1 | at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
manager_1 | at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
manager_1 | at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)
manager_1 | at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
manager_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
manager_1 | at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
manager_1 | at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
manager_1 | at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
manager_1 | at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
manager_1 | at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
manager_1 | at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
manager_1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
manager_1 | at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
manager_1 | at java.base/java.lang.Thread.run(Thread.java:833)
manager_1 | Caused by: javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:226)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:200)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:62)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:154)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:115)
manager_1 | at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
manager_1 | at jdk.proxy2/jdk.proxy2.$Proxy113.getAdapterConfig(Unknown Source)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider$1.load(KeycloakIdentityProvider.java:437)
manager_1 | at org.openremote.container.security.keycloak.KeycloakIdentityProvider$1.load(KeycloakIdentityProvider.java:429)
manager_1 | at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
manager_1 | at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
manager_1 | at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
manager_1 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
manager_1 | … 37 more
proxy_1 | 22/Dec/2022:04:54:58 +0000 https~ 172.18.0.1:58554 manager 0/0/0/323/323 “GET /api/master/info HTTP/1.1” 200 2/1/0/0/0 0/0
proxy_1 | 22/Dec/2022:04:54:58 +0000 https~ 172.18.0.1:58554 keycloak 0/0/0/16/27 “GET /auth/js/keycloak.min.js HTTP/1.1” 200 2/1/0/0/0 0/0
keycloak_1 | 2022-12-22 05:54:58,959 WARN [org.keycloak.events] (executor-thread-1) type=LOGIN_ERROR, realmId=cd982f69-df6f-42b8-9142-bf759a587473, clientId=openremote, userId=null, ipAddress=172.18.0.1, error=client_not_found
proxy_1 | 22/Dec/2022:04:54:58 +0000 https~ 172.18.0.1:58554 keycloak 0/0/0/52/52 “GET /auth/realms/master/protocol/openid-connect/auth?client_id=openremote&redirect_uri=https%3A%2F%2Flocalhost%2Fmanager%2F&state=42241fd5-370d-4a10-b6d4-4329a0b1c032&response_mode=fragment&response_type=code&scope=openid&nonce=acb71dd9-4aa4-4cca-8ef8-a185dd2985c3 HTTP/1.1” 400 2/1/0/0/0 0/0
proxy_1 | 22/Dec/2022:04:54:58 +0000 https~ 172.18.0.1:58554 keycloak 0/0/0/11/23 “GET /auth/resources/1yj98/login/openremote/img/favicon.png HTTP/1.1” 200 2/1/0/0/0 0/0
proxy_1 | 22/Dec/2022:04:55:01 +0000 http 127.0.0.1:35018 0/-1/-1/-1/0 “GET / HTTP/1.1” 302 2/2/0/0/0 0/0

Hi and welcome to the forum,

It seems, the keycloak has an issue.
How do you start the container? Could you make:

Docker container ls

in Terminal and post it?

1 Like

Maybe a similar issue: Openremote on RPi 3 - #2 by Chris
Good Luck :wink:

1 Like

There is on terminal

Actually i can access https://localhost/auth

I think keycloak works fine, but maybe on openremote(manager)/keycloak’s client is on issue

Yeah, it works. maybe it’s any problem when compose up docker. After I reinstall my own virtualbox with lubuntu (cleaning up my virtualbox), and did step by step from openremote quickstart again. it works. Thanks Chris!.

1 Like