<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.0.5
* Operating System version: windows 11
* Java version: 1.8

### Steps to reproduce this issue
code repositorie：https://github.com/lmm1990/dubbo-completableFuture-bug
1. http://localhost:20003/demo/hello?name=mark 
success
2. http://localhost:20003/demo/hello_async?name=mark   
Failed to deserialize response


### Expected Behavior

http://localhost:20003/demo/hello_async?name=mark    
need success

### Actual Behavior

Failed to deserialize response

If there is an exception, please attach the exception trace:

```
java.util.concurrent.CompletionException: org.apache.dubbo.remoting.RemotingException: Failed to deserialize response
	at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
	at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:769)
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
	at org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter.lambda$new$0(FutureAdapter.java:44)
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
	at org.apache.dubbo.remoting.exchange.support.DefaultFuture2.doReceived(DefaultFuture2.java:191)
	at org.apache.dubbo.remoting.exchange.support.DefaultFuture2.received(DefaultFuture2.java:139)
	at org.apache.dubbo.remoting.exchange.support.DefaultFuture2.received(DefaultFuture2.java:128)
	at org.apache.dubbo.rpc.protocol.tri.UnaryClientStream$ClientUnaryInboundTransportObserver.onError(UnaryClientStream.java:116)
	at org.apache.dubbo.rpc.protocol.tri.UnaryClientStream$ClientUnaryInboundTransportObserver.lambda$onComplete$0(UnaryClientStream.java:95)
	at org.apache.dubbo.common.threadpool.serial.SerializingExecutor.run(SerializingExecutor.java:99)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.dubbo.remoting.RemotingException: Failed to deserialize response
	... 10 more
```

public static void main(String[] args) throws InterruptedException, IOException {
        ReferenceConfig<GreeterService> referenceConfig = new ReferenceConfig<>();
        referenceConfig.setInterface(GreeterService.class);
        referenceConfig.setCheck(false);
        referenceConfig.setProtocol(CommonConstants.TRIPLE);
        referenceConfig.setLazy(true);
        referenceConfig.setTimeout(100000);
        DubboBootstrap bootstrap = DubboBootstrap.getInstance();
        bootstrap.application(new ApplicationConfig("dubbo-demo-triple-api-consumer"))
            .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
            .protocol(new ProtocolConfig(CommonConstants.TRIPLE, -1))
            .reference(referenceConfig)
            .start();
        GreeterService greeterService = referenceConfig.get();
        System.out.println("dubbo referenceConfig started");
        try {
            final HelloReply reply = greeterService.sayHello(HelloRequest.newBuilder()
                .setName("triple")
                .build());
            TimeUnit.SECONDS.sleep(1);
            System.out.println("Reply: " + reply.getMessage());
        } catch (Throwable t) {
            t.printStackTrace();
        }
        System.in.read();
    }
}