ShinyProxy stopped working after system upgrade

I’m a relatively novice ShinyProxy user who helped a research group deploy a shiny app on shared infrastructure. We recently did a system update and this appears to have caused ShinyProxy to fail despite the Docker configuration not changing. The app used to load, and does not following the upgrade. I have tried with ShinyProxy v3.0.2 and 3.1.1 with no luck. Any help is welcome, as I have not worked with Shiny apps or ShinyProxy in the past.

The ShinyProxy is exposed via a Traefik reverse proxy.

I’m confused by the logging line that says “Caused by: com.spotify.docker.client.exceptions.DockerRequestException: Request error: GET unix://localhost:80/images/whtns/seurattools/json: 200”, as this address does not look correctly formatted since unix sockets aren’t accesed by hostname:port, but I don’t see anywhere to configure how that URL is being constructed.

Application.yml

server:
  servlet:
    context-path: /cobrinik
proxy:
  title: Open Analytics Shiny Proxy
  logo-url: https://www.openanalytics.eu/shinyproxy/logo.png
  landing-page: /app/seuratApp
  port: 8080
  container-wait-time: 90000
  authentication: none
  hide-navbar: true
  container-log-path: /etc/shinyproxy/container-logs
  admin-groups: admins
  users:
  - name: jack
    password: password
    groups: admins
  - name: jeff
    password: password
  docker:
      internal-networking: true
  specs:
  - id: euler
    container-cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
    container-image: whtns/seurattools
    access-groups: admins
    container-volumes: ["cobrinik_seuratApp_dockerdata:/root/dockerdata"]
    container-network: traefik_proxy
  - id: seuratApp
    container-cmd: ["R", "-e", "shiny::runApp('/root/dockerapp')"]
    container-image: whtns/seurattools
    access-groups: admins
    container-volumes: ["cobrinik_seuratApp_dockerdata:/root/dockerdata"]
    container-network: traefik_proxy

logging:
  file:
    name: shinyproxy.log

Logs from latest attempt to start a shiny app:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.7.6)

2025-06-03 18:41:10.955  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2025-06-03 18:41:10.961  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2025-06-03 18:41:11.017  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 41 ms. Found 0 Redis repository interfaces.
2025-06-03 18:41:11.144  INFO 1 --- [           main] faultConfiguringBeanFactoryPostProcessor : No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2025-06-03 18:41:11.157  INFO 1 --- [           main] faultConfiguringBeanFactoryPostProcessor : No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2025-06-03 18:41:11.764  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-06-03 18:41:11.777  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'integrationChannelResolver' of type [org.springframework.integration.support.channel.BeanFactoryChannelResolver] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-06-03 18:41:12.268  WARN 1 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2025-06-03 18:41:12.321  INFO 1 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2025-06-03 18:41:12.322  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2995 ms
2025-06-03 18:41:12.401  INFO 1 --- [           main] e.o.c.service.IdentifierService          : ShinyProxy runtimeId:                   fd75d413-6eef-44bd-a1be-ad28b68a6b43
2025-06-03 18:41:12.510  INFO 1 --- [           main] e.o.c.service.IdentifierService          : ShinyProxy instanceID (hash of config): 40f2fd96c7cbe59e31639f56ed30837ee79c2bbf
2025-06-03 18:41:13.450  INFO 1 --- [           main] o.s.boot.web.servlet.RegistrationBean    : Filter orderedFormContentFilter was not registered (disabled)
2025-06-03 18:41:13.586  INFO 1 --- [           main] e.o.containerproxy.service.LogService    : Container logging enabled. Log files will be saved to /opt/shinyproxy/container-logs
2025-06-03 18:41:13.894  INFO 1 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2d6aca33, org.springframework.security.web.session.ForceEagerSessionCreationFilter@21ab988f, org.springframework.security.web.session.ForceEagerSessionCreationFilter@22fba58c, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@29314cc9, org.springframework.security.web.context.SecurityContextPersistenceFilter@7e8a46b7, org.springframework.security.web.header.HeaderWriterFilter@21f9277b, org.springframework.security.web.csrf.CsrfFilter@47b2e9e1, org.springframework.security.web.authentication.logout.LogoutFilter@1440c311, eu.openanalytics.containerproxy.util.AppRecoveryFilter@3e681bc, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1917d90f, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@21fff664, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@4e38d975, org.springframework.security.web.session.SessionManagementFilter@54da32dc, org.springframework.security.web.access.ExceptionTranslationFilter@bdecc21, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@62ddd21b]
2025-06-03 18:41:13.922  WARN 1 --- [           main] org.thymeleaf.templatemode.TemplateMode  : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2025-06-03 18:41:14.387  INFO 1 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page template: index
2025-06-03 18:41:16.147  INFO 1 --- [           main] o.s.l.c.support.AbstractContextSource    : Property 'userDn' not set - anonymous context will be used for read-write operations
2025-06-03 18:41:16.525  INFO 1 --- [           main] o.s.i.endpoint.EventDrivenConsumer       : Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2025-06-03 18:41:16.525  INFO 1 --- [           main] o.s.i.channel.PublishSubscribeChannel    : Channel 'ContainerProxy.errorChannel' has 1 subscriber(s).
2025-06-03 18:41:16.526  INFO 1 --- [           main] o.s.i.endpoint.EventDrivenConsumer       : started bean '_org.springframework.integration.errorLogger'
2025-06-03 18:41:16.540  INFO 1 --- [           main] io.undertow                              : starting server: Undertow - 2.2.21.Final
2025-06-03 18:41:16.562  INFO 1 --- [           main] org.xnio                                 : XNIO version 3.8.8.Final
2025-06-03 18:41:16.585  INFO 1 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.8.Final
2025-06-03 18:41:16.694  INFO 1 --- [           main] org.jboss.threads                        : JBoss Threads version 3.1.0.Final
2025-06-03 18:41:16.770  INFO 1 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 8080 (http) with context path '/cobrinik'
2025-06-03 18:41:16.883  INFO 1 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2025-06-03 18:41:16.884  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 106 ms
2025-06-03 18:41:16.901  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2025-06-03 18:41:17.489  INFO 1 --- [           main] io.undertow                              : starting server: Undertow - 2.2.21.Final
2025-06-03 18:41:17.512  INFO 1 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 9090 (http)
2025-06-03 18:41:17.547  INFO 1 --- [           main] e.o.c.util.StartupEventListener          : Started ShinyProxy 3.0.2 (ContainerProxy 1.0.2)
2025-06-03 18:41:17.547  INFO 1 --- [           main] e.o.c.service.AppRecoveryService         : Recovery of running apps disabled
2025-06-03 18:41:33.042  INFO 1 --- [  XNIO-1 task-1] io.undertow.servlet                      : Initializing Spring DispatcherServlet 'dispatcherServlet'
2025-06-03 18:41:33.043  INFO 1 --- [  XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2025-06-03 18:41:33.044  INFO 1 --- [  XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2025-06-03 18:41:33.063  INFO 1 --- [  XNIO-1 task-1] e.o.containerproxy.service.UserService   : Anonymous user logged in [user: de586bc01099d7f2c58447b656fe66854d2c3e3a8fede214ebfb4e3a68d5ea69]
2025-06-03 18:41:34.482  INFO 1 --- [pool-1-thread-1] e.o.containerproxy.service.ProxyService  : [user=de586bc01099d7f2c58447b656fe66854d2c3e3a8fede214ebfb4e3a68d5ea69 proxyId=62627797-0d20-4671-80d6-8c84c55c6e7a specId=seuratApp] Starting proxy
2025-06-03 18:41:35.476  WARN 1 --- [pool-1-thread-1] e.o.containerproxy.service.ProxyService  : [user=de586bc01099d7f2c58447b656fe66854d2c3e3a8fede214ebfb4e3a68d5ea69 proxyId=62627797-0d20-4671-80d6-8c84c55c6e7a specId=seuratApp] Proxy failed to start

eu.openanalytics.containerproxy.ProxyFailedToStartException: Container with index 0 failed to start
	at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.startProxy(AbstractContainerBackend.java:116) ~[containerproxy-1.0.2.jar!/:1.0.2]
	at eu.openanalytics.containerproxy.service.ProxyService.startOrResumeProxy(ProxyService.java:455) ~[containerproxy-1.0.2.jar!/:1.0.2]
	at eu.openanalytics.containerproxy.service.ProxyService.lambda$startProxy$4(ProxyService.java:279) ~[containerproxy-1.0.2.jar!/:1.0.2]
	at eu.openanalytics.containerproxy.service.ProxyService.lambda$action$11(ProxyService.java:599) ~[containerproxy-1.0.2.jar!/:1.0.2]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: eu.openanalytics.containerproxy.ContainerFailedToStartException: Docker container failed to start
	at eu.openanalytics.containerproxy.backend.docker.DockerEngineBackend.startContainer(DockerEngineBackend.java:153) ~[containerproxy-1.0.2.jar!/:1.0.2]
	at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.startProxy(AbstractContainerBackend.java:108) ~[containerproxy-1.0.2.jar!/:1.0.2]
	... 8 common frames omitted
Caused by: com.spotify.docker.client.exceptions.DockerRequestException: Request error: GET unix://localhost:80/images/whtns/seurattools/json: 200
	at com.spotify.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:2840) ~[docker-client-8.16.0.jar!/:8.16.0]
	at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2712) ~[docker-client-8.16.0.jar!/:8.16.0]
	at com.spotify.docker.client.DefaultDockerClient.inspectImage(DefaultDockerClient.java:1509) ~[docker-client-8.16.0.jar!/:8.16.0]
	at eu.openanalytics.containerproxy.backend.docker.DockerEngineBackend.isImagePresent(DockerEngineBackend.java:243) ~[containerproxy-1.0.2.jar!/:1.0.2]
	at eu.openanalytics.containerproxy.backend.docker.DockerEngineBackend.startContainer(DockerEngineBackend.java:81) ~[containerproxy-1.0.2.jar!/:1.0.2]
	... 9 common frames omitted
Caused by: javax.ws.rs.client.ResponseProcessingException: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `com.spotify.docker.client.messages.ImageInfo`, problem: Null container
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 8312]
	at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:884) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.access$700(JerseyInvocation.java:98) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation$5.completed(JerseyInvocation.java:851) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientRuntime.processResponse(ClientRuntime.java:197) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientRuntime.access$300(ClientRuntime.java:74) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientRuntime$2$1$1.run(ClientRuntime.java:167) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:303) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientRuntime$2$1.response(ClientRuntime.java:165) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.apache.connector.ApacheConnector$1.run(ApacheConnector.java:498) ~[jersey-apache-connector-2.26-b03.jar!/:na]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at jersey.repackaged.com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) ~[jersey-guava-2.26-b03.jar!/:na]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) ~[na:na]
	at jersey.repackaged.com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:50) ~[jersey-guava-2.26-b03.jar!/:na]
	at jersey.repackaged.com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:37) ~[jersey-guava-2.26-b03.jar!/:na]
	at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:494) ~[jersey-apache-connector-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientRuntime$2.run(ClientRuntime.java:181) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:303) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientRuntime$3.run(ClientRuntime.java:209) ~[jersey-client-2.26-b03.jar!/:na]
	... 5 common frames omitted
Caused by: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `com.spotify.docker.client.messages.ImageInfo`, problem: Null container
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 8312]
	at com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2047) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.wrapAsJsonMappingException(StdValueInstantiator.java:587) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.rewrapCtorProblem(StdValueInstantiator.java:610) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromObjectWith(StdValueInstantiator.java:293) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.ValueInstantiator.createFromObjectWith(ValueInstantiator.java:288) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:202) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:519) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1405) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:352) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2025) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1175) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:803) ~[jackson-jaxrs-base-2.13.4.jar!/:2.13.4]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:257) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:236) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:156) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1082) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:874) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:808) ~[jersey-common-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326) ~[jersey-client-2.26-b03.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:881) ~[jersey-client-2.26-b03.jar!/:na]
	... 33 common frames omitted
Caused by: java.lang.NullPointerException: Null container
	at com.spotify.docker.client.messages.AutoValue_ImageInfo.<init>(AutoValue_ImageInfo.java:59) ~[docker-client-8.16.0.jar!/:8.16.0]
	at com.spotify.docker.client.messages.ImageInfo.create(ImageInfo.java:97) ~[docker-client-8.16.0.jar!/:8.16.0]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
	at com.fasterxml.jackson.databind.introspect.AnnotatedMethod.call(AnnotatedMethod.java:104) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromObjectWith(StdValueInstantiator.java:291) ~[jackson-databind-2.13.4.2.jar!/:2.13.4.2]
	... 51 common frames omitted

Hi

I assume that during the system upgrade, docker has been upgraded, which introduced a breaking change in the docker API. However, ShinyProxy 3.1.1 should work with this newer docker version. Therefore, upgrading to 3.1.1 should fix your problem.

Note that in the logs you provided, you are still using version 3.0.2:

2025-06-03 18:41:17.547  INFO 1 --- [           main] e.o.c.util.StartupEventListener          : Started ShinyProxy 3.0.2 (ContainerProxy 1.0.2)

So can you try upgrading to version 3.1.1 again?

I just tried again and repulled various openanalytics docker images (tags 3.1.0, 3.1.1, latest). In all of these cases, shinyproxy.jar file in my bind mount of /opt/shinyproxy did not get replaced. I manually replaced the shinyproxy.jar and VERSION files from a fresh container and it is now working. Maybe bind-mounting the whole /opt/shinyproxy directory is not the best approach for forward compatibility, I might have to only bind-mount the application.yml file.

Hi

It’s indeed better to only mount the application.yml file instead of the full /opt/shinyproxy directory.