geoserver / geoserver-cloud

Cloud Native GeoServer is GeoServer ready to use in the cloud through dockerized microservices.

Home Page:http://geoserver.org/geoserver-cloud

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Regression with Azure Blob Storage for GWC cache between RC27 and RC28

danduk82 opened this issue · comments

Since RC28, it is not possible anymore to use GWC azure blob store. See the stacktrace

NB: in this application, we are using environment variables in the blob store definition, instead of saving the azure credentials in the datadir, this might also be related to ALLOW_ENV_PARAMETRIZATION maybe?

OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
2023-04-28 12:34:28.766Z WARN  c.m.a.a.i.c.ConfigurationBuilder - APPINSIGHTS_INSTRUMENTATIONKEY is only supported for backwards compatibility, please consider using APPLICATIONINSIGHTS_CONNECTION_STRING instead
2023-04-28 12:34:31.044Z INFO  c.m.applicationinsights.agent - Application Insights Java Agent 3.4.7 started successfully (PID 1, JVM running for 3.104 s)
2023-04-28 12:34:31.045Z INFO  c.m.applicationinsights.agent - Java version: 17.0.6, vendor: Eclipse Adoptium, home: /opt/java/openjdk
2023-04-28 12:34:34.380  INFO 1 --- [           main] c.c.j.SimpleJNDIStaticContextInitializer : Initializing JNDI InitialContextFactoryBuilder
2023-04-28 12:34:34.394  INFO 1 --- [           main] c.c.j.SimpleJNDIStaticContextInitializer : Registered JNDI implementation using org.geoserver.cloud.jndi.SimpleNamingContextBuilder
2023-04-28 12:34:34.871  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.retry.annotation.RetryConfiguration' of type [org.springframework.retry.annotation.RetryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-04-28 12:34:35.224  INFO 1 --- [           main] c.c.j.SimpleJNDIStaticContextInitializer : JNDI InitialContextFactoryBuilder already set
2023-04-28 12:34:35.225  INFO 1 --- [           main] o.g.cloud.web.app.WebUIApplication       : The following 5 profiles are active: "webui_service", "standalone", "bootstrap_standalone", "discovery_none", "datadir"
--- redacted ---
2023-04-28 12:34:42.873  INFO 1 --- [           main] org.geoserver.cloud.metrics.catalog      : GeoServer Catalog and config metrics enabled.
2023-04-28 12:34:43.139  WARN 1 --- [           main] org.geoserver.security                   : init() called but proxy not yet configured
2023-04-28 12:34:44.994  INFO 1 --- [           main] o.geoserver.cloud.autoconfigure.authzn   : geoserver.security.authkey enabled
2023-04-28 12:34:45.991  INFO 1 --- [           main] org.geoserver.cloud.config.catalog       : Automatically contributing WPSXStreamLoader
2023-04-28 12:34:45.996  INFO 1 --- [           main] o.geoserver.cloud.config.datadirectory   : Using optimized parallel data directory config loader
2023-04-28 12:34:49.429  WARN 1 --- [ader-1-worker-4] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl--28836df5:15e75539a19:-7fc8(Models_TC_202209) already exists
2023-04-28 12:34:49.752  WARN 1 --- [ader-1-worker-4] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl-8ef86cc:15e976c884e:-7f9f(Swiftre_Casualty_Non_Proportional) already exists
2023-04-28 12:34:49.917  WARN 1 --- [ader-1-worker-4] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl--28836df5:15e75539a19:-7fa9(Models_FL_202209) already exists
2023-04-28 12:34:50.019  WARN 1 --- [ader-1-worker-4] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl--42c00277:15f5203fcc4:-7f2b(Tsunami_BaseRates) already exists
2023-04-28 12:35:00.039  WARN 1 --- [meter-publisher] i.m.c.instrument.internal.DefaultGauge   : Failed to apply the value function for the gauge 'geoserver.config.update_sequence'. Note that subsequent logs will be logged at debug level.

java.lang.NullPointerException: Cannot invoke "org.geoserver.config.GeoServerInfo.getUpdateSequence()" because the return value of "org.geoserver.config.GeoServer.getGlobal()" is null
	at org.geoserver.cloud.autoconfigure.metrics.catalog.CatalogMetrics.lambda$registerObservedUpdateSequence$0(CatalogMetrics.java:74) ~[gs-cloud-catalog-backend-common-1.0.0.jar:na]
	at io.micrometer.core.instrument.Gauge.lambda$builder$0(Gauge.java:58) ~[micrometer-core-1.9.9.jar:1.9.9]
	at io.micrometer.core.instrument.StrongReferenceGaugeFunction.applyAsDouble(StrongReferenceGaugeFunction.java:48) ~[micrometer-core-1.9.9.jar:1.9.9]
	at io.micrometer.core.instrument.internal.DefaultGauge.value(DefaultGauge.java:53) ~[micrometer-core-1.9.9.jar:1.9.9]
	at io.opentelemetry.javaagent.instrumentation.micrometer.ai.AzureMonitorMeterRegistry.trackGauge(AzureMonitorMeterRegistry.java:74) ~[na:na]
	at io.opentelemetry.javaagent.instrumentation.micrometer.ai.AzureMonitorMeterRegistry.publish(AzureMonitorMeterRegistry.java:49) ~[na:na]
	at io.micrometer.core.instrument.push.PushMeterRegistry.publishSafely(PushMeterRegistry.java:54) ~[micrometer-core-1.9.9.jar:1.9.9]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
	at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]

2023-04-28 12:35:21.524  INFO 1 --- [ader-1-worker-1] org.geoserver.catalog.datadir.internal   : Depersisted 5,144 Catalog files.
2023-04-28 12:35:23.117  WARN 1 --- [           main] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl--28836df5:15e75539a19:-7fa9(Models_FL_202209) already exists
2023-04-28 12:35:23.118  WARN 1 --- [           main] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl--28836df5:15e75539a19:-7fc8(Models_TC_202209) already exists
2023-04-28 12:35:23.118  WARN 1 --- [           main] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl-8ef86cc:15e976c884e:-7f9f(Swiftre_Casualty_Non_Proportional) already exists
2023-04-28 12:35:23.118  WARN 1 --- [           main] org.geoserver.catalog.plugin             : STYLE:StyleInfoImpl--42c00277:15f5203fcc4:-7f2b(Tsunami_BaseRates) already exists
2023-04-28 12:35:23.148  INFO 1 --- [           main] b.d.ParallelDataDirectoryGeoServerLoader : Default styles already present
2023-04-28 12:35:23.349  INFO 1 --- [           main] org.geoserver.catalog.datadir            : Loading GeoServer config...
2023-04-28 12:35:23.430  INFO 1 --- [ader-1-worker-1] org.geoserver.catalog.datadir.internal   : Loading workspace settings...
2023-04-28 12:35:23.565  INFO 1 --- [ader-1-worker-1] org.geoserver.catalog.datadir.internal   : Loading workspace services...
2023-04-28 12:35:23.665  INFO 1 --- [           main] o.g.cloud.autoconfigure.gwc.core         : GeoWebCache core GeoServer integration enabled
2023-04-28 12:35:23.896  WARN 1 --- [           main] org.geowebcache.config.XMLConfiguration  : GWC configuration validation error: cvc-elt.1.a: Cannot find the declaration of element 'gwcConfiguration'.
2023-04-28 12:35:23.896  WARN 1 --- [           main] org.geowebcache.config.XMLConfiguration  : Will try to use configuration anyway. Please check the order of declared elements against the schema.
2023-04-28 12:35:31.276  INFO 1 --- [           main] org.geoserver.cloud.gwc.config.core      : forcing System Property GEOWEBCACHE_CACHE_DIR=/opt/app/data_directory/gwc
2023-04-28 12:35:32.640  WARN 1 --- [ntLoopGroup-1-2] com.microsoft.rest.v2.http.NettyClient   : Error emitted on channel 2e2df6e1. Message: Validation failed for header 'User-Agent'
2023-04-28 12:35:32.656 ERROR 1 --- [ntLoopGroup-1-2] c.m.azure.storage.blob.LoggingFactory    : Unexpected failure attempting to make request.
Error message:'Validation failed for header 'User-Agent''

2023-04-28 12:35:32.657 ERROR 1 --- [ntLoopGroup-1-2] c.m.azure.storage.blob.LoggingFactory    : Unexpected failure attempting to make request.
Error message:'Validation failed for header 'User-Agent''

2023-04-28 12:35:32.663  WARN 1 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'geoServerLoaderImpl': Invocation of init method failed; nested exception is java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
2023-04-28 12:35:32.801 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'geoServerLoaderImpl': Invocation of init method failed; nested exception is java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920) ~[spring-context-5.3.26.jar:5.3.26]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.26.jar:5.3.26]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.10.jar:2.7.10]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.10.jar:2.7.10]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.10.jar:2.7.10]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.10.jar:2.7.10]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.10.jar:2.7.10]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.10.jar:2.7.10]
	at org.geoserver.cloud.web.app.WebUIApplication.main(WebUIApplication.java:20) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[bin/:na]
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) ~[bin/:na]
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[bin/:na]
	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[bin/:na]
Caused by: java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.geoserver.config.GeoServerLoader.postProcessBeforeInitializationGeoServer(GeoServerLoader.java:312) ~[gs-main-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	at org.geoserver.config.GeoServerLoader.postProcessBeforeInitialization(GeoServerLoader.java:284) ~[gs-main-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	at org.geoserver.cloud.config.catalog.backend.datadirectory.ParallelDataDirectoryGeoServerLoader.load(ParallelDataDirectoryGeoServerLoader.java:101) ~[gs-cloud-catalog-backend-datadir-1.0.0.jar:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.3.26.jar:5.3.26]
	... 26 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1707) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1452) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1156) ~[spring-context-5.3.26.jar:5.3.26]
	at org.geoserver.platform.GeoServerExtensions.getBean(GeoServerExtensions.java:260) ~[gs-platform-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	at org.geoserver.platform.GeoServerExtensions.extensions(GeoServerExtensions.java:150) ~[gs-platform-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	at org.geoserver.platform.GeoServerExtensions.extensions(GeoServerExtensions.java:292) ~[gs-platform-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	at org.geoserver.config.GeoServerLoader.loadInitializers(GeoServerLoader.java:349) ~[gs-main-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	at org.geoserver.config.GeoServerLoader.postProcessBeforeInitializationGeoServer(GeoServerLoader.java:310) ~[gs-main-2.23.0-CLOUD.jar:2.23.0-CLOUD]
	... 35 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:707) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:198) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330) ~[spring-beans-5.3.26.jar:5.3.26]
	... 50 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:315) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:296) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330) ~[spring-beans-5.3.26.jar:5.3.26]
	... 62 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117) ~[spring-beans-5.3.26.jar:5.3.26]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:311) ~[spring-beans-5.3.26.jar:5.3.26]
	... 72 common frames omitted
Caused by: org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.geowebcache.azure.AzureClient.<init>(AzureClient.java:112) ~[gwc-azure-blob-1.23.0.jar:1.23.x/437ba9ba8468c6431945e3e988a330eb35012bee]
	at org.geowebcache.azure.AzureBlobStore.<init>(AzureBlobStore.java:77) ~[gwc-azure-blob-1.23.0.jar:1.23.x/437ba9ba8468c6431945e3e988a330eb35012bee]
	at org.geowebcache.azure.AzureBlobStoreInfo.createInstance(AzureBlobStoreInfo.java:235) ~[gwc-azure-blob-1.23.0.jar:1.23.x/437ba9ba8468c6431945e3e988a330eb35012bee]
	at org.geowebcache.storage.CompositeBlobStore.loadBlobStore(CompositeBlobStore.java:431) ~[gwc-core-1.23.0.jar:1.23.x/437ba9ba8468c6431945e3e988a330eb35012bee]
	at org.geowebcache.storage.CompositeBlobStore.loadBlobStores(CompositeBlobStore.java:372) ~[gwc-core-1.23.0.jar:1.23.x/437ba9ba8468c6431945e3e988a330eb35012bee]
	at org.geowebcache.storage.CompositeBlobStore.<init>(CompositeBlobStore.java:153) ~[gwc-core-1.23.0.jar:1.23.x/437ba9ba8468c6431945e3e988a330eb35012bee]
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[na:na]
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[na:na]
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) ~[na:na]
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) ~[spring-beans-5.3.26.jar:5.3.26]
	... 74 common frames omitted
Caused by: java.lang.IllegalArgumentException: Validation failed for header 'User-Agent'
	at io.netty.handler.codec.DefaultHeaders.validateValue(DefaultHeaders.java:1019) ~[netty-codec-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.handler.codec.DefaultHeaders.add(DefaultHeaders.java:330) ~[netty-codec-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.handler.codec.DefaultHeaders.addObject(DefaultHeaders.java:364) ~[netty-codec-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.handler.codec.http.DefaultHttpHeaders.add(DefaultHttpHeaders.java:115) ~[netty-codec-http-4.1.90.Final.jar:4.1.90.Final]
	at com.microsoft.rest.v2.http.NettyClient.createDefaultHttpRequest(NettyClient.java:605) ~[client-runtime-2.1.0.jar:na]
	at com.microsoft.rest.v2.http.NettyClient.access$400(NettyClient.java:64) ~[client-runtime-2.1.0.jar:na]
	at com.microsoft.rest.v2.http.NettyClient$AcquisitionListener.operationComplete(NettyClient.java:275) ~[client-runtime-2.1.0.jar:na]
	at io.opentelemetry.javaagent.instrumentation.netty.v4.common.FutureListenerWrappers$WrappedFutureListener.operationComplete(FutureListenerWrappers.java:106) ~[na:na]
	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.DefaultPromise.access$200(DefaultPromise.java:35) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.DefaultPromise$1.run(DefaultPromise.java:503) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:406) ~[netty-transport-classes-epoll-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.90.Final.jar:4.1.90.Final]
	at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Caused by: java.lang.IllegalArgumentException: a header value contains prohibited character 0x20 at index 0.
	at io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueValidator.validate(DefaultHttpHeaders.java:395) ~[netty-codec-http-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueValidator.validate(DefaultHttpHeaders.java:387) ~[netty-codec-http-4.1.90.Final.jar:4.1.90.Final]
	at io.netty.handler.codec.DefaultHeaders.validateValue(DefaultHeaders.java:1017) ~[netty-codec-4.1.90.Final.jar:4.1.90.Final]
	... 19 common frames omitted

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'geoServerLoaderImpl': Invocation of init method failed; nested exception is java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
	at org.geoserver.cloud.web.app.WebUIApplication.main(WebUIApplication.java:20)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:95)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)
Caused by: java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.geoserver.config.GeoServerLoader.postProcessBeforeInitializationGeoServer(GeoServerLoader.java:312)
	at org.geoserver.config.GeoServerLoader.postProcessBeforeInitialization(GeoServerLoader.java:284)
	at org.geoserver.cloud.config.catalog.backend.datadirectory.ParallelDataDirectoryGeoServerLoader.load(ParallelDataDirectoryGeoServerLoader.java:101)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
	... 26 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcInitializer' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcConfigBlobStore' while setting bean property 'blobStore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1707)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1452)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1156)
	at org.geoserver.platform.GeoServerExtensions.getBean(GeoServerExtensions.java:260)
	at org.geoserver.platform.GeoServerExtensions.extensions(GeoServerExtensions.java:150)
	at org.geoserver.platform.GeoServerExtensions.extensions(GeoServerExtensions.java:292)
	at org.geoserver.config.GeoServerLoader.loadInitializers(GeoServerLoader.java:349)
	at org.geoserver.config.GeoServerLoader.postProcessBeforeInitializationGeoServer(GeoServerLoader.java:310)
	... 35 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcConfigBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Cannot resolve reference to bean 'gwcBlobStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:707)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:198)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
	... 50 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcBlobStore' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-gwc-2.23.0-CLOUD.jar!/geowebcache-core-context.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:315)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:296)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
	... 62 more
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.geowebcache.storage.CompositeBlobStore]: Constructor threw exception; nested exception is org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:311)
	... 72 more
Caused by: org.geowebcache.storage.StorageException: Failed to setup Azure connection and container
	at org.geowebcache.azure.AzureClient.<init>(AzureClient.java:112)
	at org.geowebcache.azure.AzureBlobStore.<init>(AzureBlobStore.java:77)
	at org.geowebcache.azure.AzureBlobStoreInfo.createInstance(AzureBlobStoreInfo.java:235)
	at org.geowebcache.storage.CompositeBlobStore.loadBlobStore(CompositeBlobStore.java:431)
	at org.geowebcache.storage.CompositeBlobStore.loadBlobStores(CompositeBlobStore.java:372)
	at org.geowebcache.storage.CompositeBlobStore.<init>(CompositeBlobStore.java:153)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211)
	... 74 more
Caused by: java.lang.IllegalArgumentException: Validation failed for header 'User-Agent'
	at io.netty.handler.codec.DefaultHeaders.validateValue(DefaultHeaders.java:1019)
	at io.netty.handler.codec.DefaultHeaders.add(DefaultHeaders.java:330)
	at io.netty.handler.codec.DefaultHeaders.addObject(DefaultHeaders.java:364)
	at io.netty.handler.codec.http.DefaultHttpHeaders.add(DefaultHttpHeaders.java:115)
	at com.microsoft.rest.v2.http.NettyClient.createDefaultHttpRequest(NettyClient.java:605)
	at com.microsoft.rest.v2.http.NettyClient.access$400(NettyClient.java:64)
	at com.microsoft.rest.v2.http.NettyClient$AcquisitionListener.operationComplete(NettyClient.java:275)
	at io.opentelemetry.javaagent.instrumentation.netty.v4.common.FutureListenerWrappers$WrappedFutureListener.operationComplete(FutureListenerWrappers.java:106)
	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
	at io.netty.util.concurrent.DefaultPromise.access$200(DefaultPromise.java:35)
	at io.netty.util.concurrent.DefaultPromise$1.run(DefaultPromise.java:503)
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:406)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	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(Unknown Source)
Caused by: java.lang.IllegalArgumentException: a header value contains prohibited character 0x20 at index 0.
	at io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueValidator.validate(DefaultHttpHeaders.java:395)
	at io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueValidator.validate(DefaultHttpHeaders.java:387)
	at io.netty.handler.codec.DefaultHeaders.validateValue(DefaultHeaders.java:1017)