After introducing https://github.com/elastic/elasticsearch/pull/86135 the underlying Azure SDK sanitizes incorrectly certain SAS tokens, preventing the correct authentication against the Azure storage service.
modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureClientProvider.java
this.nioLoopResources = useNative -> eventLoopGroup;
    }
    static int eventLoopThreadsFromSettings(Settings settings) {
        return EVENT_LOOP_THREAD_COUNT.get(settings);
    }
    static AzureClientProvider create(ThreadPool threadPool, Settings settings) {
        final ExecutorService eventLoopExecutor = threadPool.executor(NETTY_EVENT_LOOP_THREAD_POOL_NAME);
        
        
        
        final EventLoopGroup eventLoopGroup = new NioEventLoopGroup(
            eventLoopThreadsFromSettings(settings),
            new PrivilegedExecutor(eventLoopExecutor)
        );
        final TimeValue openConnectionTimeout = OPEN_CONNECTION_TIMEOUT.get(settings);
        final TimeValue maxIdleTime = MAX_IDLE_TIME.get(settings);
        ConnectionProvider provider = ConnectionProvider.builder("azure-sdk-connection-pool")
            .maxConnections(MAX_OPEN_CONNECTIONS.get(settings))
            .pendingAcquireMaxCount(PENDING_CONNECTION_QUEUE_SIZE) 
            .pendingAcquireTimeout(Duration.ofMillis(openConnectionTimeout.millis()))
            .maxIdleTime(Duration.ofMillis(maxIdleTime.millis()))
            .build();
        ByteBufAllocator pooledByteBufAllocator = createByteBufAllocator();
        
        threadPool.executor(REPOSITORY_THREAD_POOL_NAME);
        return new AzureClientProvider(threadPool, REPOSITORY_THREAD_POOL_NAME, eventLoopGroup, provider, pooledByteBufAllocator);
    }
    private static ByteBufAllocator createByteBufAllocator() {