diff --git a/pkg/txn/service/service_cn_handler.go b/pkg/txn/service/service_cn_handler.go
index 1ba14dfbd69129873e406073e8049a7959dc9460..d0cd37179eb1f1d5a8fcbeb0b1c6ee03ebfe3bce 100644
--- a/pkg/txn/service/service_cn_handler.go
+++ b/pkg/txn/service/service_cn_handler.go
@@ -107,6 +107,7 @@ func (s *service) Read(ctx context.Context, request *txn.TxnRequest, response *t
 	}
 
 	response.CNOpResponse.Payload = data
+	response.Txn = &request.Txn
 	return nil
 }
 
diff --git a/pkg/txn/service/service_cn_handler_test.go b/pkg/txn/service/service_cn_handler_test.go
index 95a6bc3c147eac29381cc9ae3671070fca9d7158..f50fcd128526f91ddbe1e10a92f26bcd25700669 100644
--- a/pkg/txn/service/service_cn_handler_test.go
+++ b/pkg/txn/service/service_cn_handler_test.go
@@ -626,6 +626,7 @@ func checkReadResponses(t *testing.T, response []txn.TxnResponse, expectValues .
 	for idx, resp := range response {
 		values := mem.MustParseGetPayload(resp.CNOpResponse.Payload)
 		assert.Equal(t, expectValues[idx], string(values[0]))
+		assert.NotNil(t, resp.Txn)
 	}
 }