diff --git a/protocol/dubbo/impl/codec.go b/protocol/dubbo/impl/codec.go
index c139f3547b2af5196a38be9bc83f49251bfcf043..cf90ea7f44a1057ab8eee5c5403fa6c6c6996aa8 100644
--- a/protocol/dubbo/impl/codec.go
+++ b/protocol/dubbo/impl/codec.go
@@ -163,6 +163,7 @@ func (c *ProtocolCodec) Decode(p *DubboPackage) error {
 	if p.IsResponseWithException() {
 		logger.Infof("response with exception: %+v", p.Header)
 		decoder := hessian.NewDecoder(body)
+		p.Body = &ResponsePayload{}
 		exception, err := decoder.Decode()
 		if err != nil {
 			return perrors.WithStack(err)