jenkinsci/azure-storage-plugin

Failed to validate storage account details

amoratti opened this issue · 9 comments

Version report

Jenkins and plugins versions report:

Jenkins: 2.299
OS: Mac OS X - 11.4
---
jsch:0.1.55.2
blueocean-commons:1.24.7
echarts-api:5.1.2-2
structs:1.23
conditional-buildstep:1.4.1
apache-httpcomponents-client-4-api:4.5.13-1.0
bootstrap5-api:5.0.1-2
sshd:3.0.3
pipeline-model-extensions:1.8.5
workflow-aggregator:2.6
mailer:1.34
git:4.7.2
bootstrap4-api:4.6.0-3
jquery3-api:3.6.0-1
command-launcher:1.6
workflow-api:2.46
workflow-job:2.41
ssh-credentials:1.19
github-branch-source:2.11.1
javadoc:1.6
workflow-cps-global-lib:2.21
jackson2-api:2.12.3
windows-azure-storage:358.v5c001416d74f
pipeline-stage-tags-metadata:1.8.5
pipeline-milestone-step:1.3.2
credentials:2.5
basic-branch-build-strategies:1.3.2
github:1.33.1
lockable-resources:2.11
workflow-scm-step:2.13
matrix-project:1.19
pipeline-stage-step:2.5
pipeline-build-step:2.13
pipeline-input-step:2.12
bouncycastle-api:2.20
checks-api:1.7.0
handlebars:3.0.8
momentjs:1.1.1
plain-credentials:1.7
copyartifact:1.46.1
git-client:3.7.2
pipeline-rest-api:2.19
workflow-basic-steps:2.23
github-api:1.123
jaxb:2.3.0.1
maven-plugin:3.12
font-awesome-api:5.15.3-3
credentials-binding:1.26
pipeline-model-definition:1.8.5
pipeline-stage-view:2.19
azure-keyvault:123.v1aba71c2d365
token-macro:2.15
workflow-multibranch:2.26
script-security:1.77
git-server:1.9
azure-credentials:182.v3ccd4a755864
snakeyaml-api:1.29.1
workflow-step-api:2.23
run-condition:1.5
okhttp-api:3.14.9
pipeline-graph-analysis:1.11
azure-sdk:23.v5682688d0eef
popper2-api:2.5.4-2
pipeline-model-api:1.8.5
plugin-util-api:2.3.0
workflow-cps:2.92
popper-api:1.16.1-2
workflow-durable-task-step:2.39
trilead-api:1.0.13
branch-api:2.6.4
jdk-tool:1.5
cloudbees-folder:6.15
jjwt-api:0.11.2-9.c8b45b8bb173
durable-task:1.37
junit:1.50
caffeine-api:2.9.1-23.v51c4e2c879c8
scm-api:2.6.4
ace-editor:1.1
display-url-api:2.3.5
scm-filter-branch-pr:0.5.1
workflow-support:3.8
blueocean-rest:1.24.7
  • What Operating System are you using (both controller, and any agents involved in the problem)?
OS: Mac OS X - 11.4

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

Reproduction steps

After updating to Jenkins 2.298 I can't use the plugin due to this error: Failed to validate storage account details. Please verify storage account name and key. If you are using a private or other Azure cloud service, make sure that the blob endpoint url is correct.
Rolling back to 2.297, and it works.
Then updated to 2.299, and it doesn't work.

I was able to reproduce this problem locally using Jenkins 2.299, during the add credential phase:

  • Jenkis => Manage Jenkins => Manage Credentials => Global credentials => Add Credentials
    • Kind: Azure Storage
    • Storage Account Name: mystorageaccount
    • Storage Account Key: [storage account key]
    • Blob EndPoint URL: https://blob.core.windows.net/
  • Click on Verify Configuration
  • Output:
Failed to validate storage account details. Please verify storage account name and key. If you are using a private or other Azure cloud service, make sure that the blob endpoint url is correct.
io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostException: Search domain query failed. Original hostname: 'blob.core.windows.net' failed to resolve 'blob.core.windows.net.internal' after 2 queries 
	at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013)
	at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:966)
	at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:414)
	at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:625)
	at io.netty.resolver.dns.DnsResolveContext.access$400(DnsResolveContext.java:63)
	at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:458)
	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
	at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571)
	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550)
	at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
	at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
	at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:605)
	at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)
	at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:201)
	at io.netty.resolver.dns.DnsQueryContext.finish(DnsQueryContext.java:193)
	at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1264)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.kqueue.KQueueDatagramChannel$KQueueDatagramChannelUnsafe.readReady(KQueueDatagramChannel.java:472)
	at io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readReady(AbstractKQueueChannel.java:382)
	at io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:211)
	at io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:289)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
Also:   java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
Caused: reactor.core.Exceptions$ReactiveException
	at reactor.core.Exceptions.propagate(Exceptions.java:392)
	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
	at reactor.core.publisher.Mono.block(Mono.java:1703)
	at com.azure.storage.common.implementation.StorageImplUtils.blockWithOptionalTimeout(StorageImplUtils.java:128)
	at com.azure.storage.blob.BlobContainerClient.existsWithResponse(BlobContainerClient.java:228)
	at com.azure.storage.blob.BlobContainerClient.exists(BlobContainerClient.java:211)
	at com.microsoftopentechnologies.windowsazurestorage.helper.AzureUtils.getBlobContainerReference(AzureUtils.java:128)
	at com.microsoftopentechnologies.windowsazurestorage.helper.AzureUtils.validateStorageAccount(AzureUtils.java:69)
Caused: com.microsoftopentechnologies.windowsazurestorage.exceptions.WAStorageException: Failed to validate storage account details. Please verify storage account name and key. If you are using a private or other Azure cloud service, make sure that the blob endpoint url is correct.
	at com.microsoftopentechnologies.windowsazurestorage.helper.AzureUtils.validateStorageAccount(AzureUtils.java:74)
	at com.microsoftopentechnologies.windowsazurestorage.helper.AzureStorageAccount$DescriptorImpl.doVerifyConfiguration(AzureStorageAccount.java:243)
	at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:393)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:405)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:208)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:141)
	at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:281)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:157)
	at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:81)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:160)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:155)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:93)
	at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:53)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:96)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:110)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:85)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.base/java.lang.Thread.run(Thread.java:829)

Changing the Blob EndPoint URL:

  • Jenkis => Manage Jenkins => Manage Credentials => Global credentials => Add Credentials
  • Click on Verify Configuration
  • Output:
Failed to validate storage account details. Please verify storage account name and key. If you are using a private or other Azure cloud service, make sure that the blob endpoint url is correct.
Also:   java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
		at reactor.core.publisher.Mono.block(Mono.java:1703)
		at com.azure.storage.common.implementation.StorageImplUtils.blockWithOptionalTimeout(StorageImplUtils.java:128)
		at com.azure.storage.blob.BlobContainerClient.existsWithResponse(BlobContainerClient.java:228)
		at com.azure.storage.blob.BlobContainerClient.exists(BlobContainerClient.java:211)
		at com.microsoftopentechnologies.windowsazurestorage.helper.AzureUtils.getBlobContainerReference(AzureUtils.java:128)
		at com.microsoftopentechnologies.windowsazurestorage.helper.AzureUtils.validateStorageAccount(AzureUtils.java:69)
		at com.microsoftopentechnologies.windowsazurestorage.helper.AzureStorageAccount$DescriptorImpl.doVerifyConfiguration(AzureStorageAccount.java:243)
		at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
		at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:393)
		at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:405)
		at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:208)
		at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:141)
		at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
		at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
		at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
		at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:281)
		at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
		at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
		at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
		at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
		at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
		at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
		at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:157)
		at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
		at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:81)
		at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
		at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:160)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:155)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:93)
		at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:53)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)
		at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
		at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
		at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:96)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
		at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
		at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)
		at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
		at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:110)
		at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:170)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:85)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
		at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
		at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
		at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
		at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
		at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
		at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
		at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
		at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
		at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
		at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
		at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
		at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
		at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
		at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
		at org.eclipse.jetty.server.Server.handle(Server.java:516)
		at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
		at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
		at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
		at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
		at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
		at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
		at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
		at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
		at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
java.lang.UnsupportedOperationException: Cannot create XMLStreamReader or XMLEventReader from a org.codehaus.stax2.io.Stax2ByteArraySource
	at java.xml/com.sun.xml.internal.stream.XMLInputFactoryImpl.jaxpSourcetoXMLInputSource(XMLInputFactoryImpl.java:302)
	at java.xml/com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:143)
	at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:631)
	at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:29)
	at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:1124)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3643)
	at com.azure.core.util.serializer.JacksonAdapter.deserialize(JacksonAdapter.java:281)
	at com.azure.core.implementation.serializer.HttpResponseBodyDecoder.deserializeBody(HttpResponseBodyDecoder.java:169)
	at com.azure.core.implementation.serializer.HttpResponseBodyDecoder.lambda$decodeByteArray$0(HttpResponseBodyDecoder.java:82)
	at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:152)
	at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57)
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
	at reactor.core.publisher.MonoCacheTime.subscribeOrReturn(MonoCacheTime.java:143)
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
	at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:130)
	at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:118)
	at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:220)
	at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:130)
	at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:184)
	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1815)
	at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:128)
	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:259)
	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142)
	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:401)
	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:416)
	at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:470)
	at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:685)
	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:94)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1368)
	at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1245)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1282)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.kqueue.AbstractKQueueStreamChannel$KQueueStreamUnsafe.readReady(AbstractKQueueStreamChannel.java:544)
	at io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readReady(AbstractKQueueChannel.java:382)
	at io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:211)
	at io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:289)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
Caused: com.microsoftopentechnologies.windowsazurestorage.exceptions.WAStorageException: Failed to validate storage account details. Please verify storage account name and key. If you are using a private or other Azure cloud service, make sure that the blob endpoint url is correct.
	at com.microsoftopentechnologies.windowsazurestorage.helper.AzureUtils.validateStorageAccount(AzureUtils.java:74)
	at com.microsoftopentechnologies.windowsazurestorage.helper.AzureStorageAccount$DescriptorImpl.doVerifyConfiguration(AzureStorageAccount.java:243)
	at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:393)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:405)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:208)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:141)
	at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:281)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:157)
	at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:81)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:160)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:155)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:93)
	at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:53)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:96)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:98)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:110)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:85)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.base/java.lang.Thread.run(Thread.java:829)

Results

Expected result:

Verification is OK and Azure Storage credential can be used.

Actual result:

Got this error: Failed to validate storage account details.

timja commented

Thanks for the great bug report,

I have re-produced with minimal required plugins just by changing the core version.

Diff jenkinsci/jenkins@jenkins-2.297...jenkins-2.298

Caused by: jenkinsci/jenkins#5559

Without having a full understanding of the history of stax and woodstox etc, it appears that the wrong implementation may be being picked up, need to figure out what it was before, what it is now and what the right one is I think =/

Somewhat interesting read: Azure/azure-sdk-for-java#11104

Working:

org.codehaus.stax2.io.Stax2ByteArraySource source: file:/Users/timja/code/jenkins/azure-storage-plugin/target/jetty/webapp/WEB-INF/lib/wstx-asl-3.2.9.jar

Broken:

org.codehaus.stax2.io.Stax2ByteArraySource source: file:/Users/timja/code/jenkins/azure-storage-plugin/work/plugins/azure-sdk/WEB-INF/lib/stax2-api-4.2.1.jar

@basil any thoughts on the best fix here, do I restore the wstx-asl to the classpath?

basil commented

As far as I can tell, StAX should be provided by the Java Platform in Java 6 and later, so I think you should just exclude any custom StAX implementations from the classpath.

I'd be curious if this problem occurs on both Java 8 and Java 11 or just Java 11. I know that Java 9 and up removed JAXB. But StAX is part of JAXP, not JAXB, so that should theoretically be unrelated to this issue. I'm just mentioning it here out of paranoia.

It occurs on both Java 8 (8u201) and Java 11 (11.0.11-1), running on Linux:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.7 LTS"
timja commented

I excluded stax,stax-api and it still failed with the same error =/

https://github.com/jenkinsci/azure-sdk-plugin/blob/master/pom.xml#L40

diff --git a/pom.xml b/pom.xml
index 77ecb85..2b37ac0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
     <packaging>hpi</packaging>
     <properties>
         <changelist>9999-SNAPSHOT</changelist>
-        <jenkins.version>2.277.2</jenkins.version>
+        <jenkins.version>2.298</jenkins.version>
         <java.level>8</java.level>
         <gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
     </properties>
@@ -50,6 +50,14 @@
                     <groupId>net.java.dev.jna</groupId>
                     <artifactId>jna-platform</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>stax</groupId>
+                    <artifactId>stax-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>stax</groupId>
+                    <artifactId>stax</artifactId>
+                </exclusion>
             </exclusions>
basil commented

Is there any way you could whittle this down into a minimal test case that I could test locally without any Azure account? If so then I'll try and investigate more closely.

timja commented

@basil you don't need an Azure account to reproduce this,

New credential
Kind: Azure Storage

timjastoragetest
YWJjZAo= (any string base64ed)
https://timjastoragetest.blob.core.windows.net/

image

timja commented

@amoratti this should be fixed in Jenkins 2.301, see jenkinsci/jenkins#5604 (comment)

Great. Thank you @timja and @basil.

Just tested on 2.301 and worked (Ubuntu 16.04.7 LTS).