diff --git a/router/server/multishard.go b/router/server/multishard.go
index 46bb29e5b..1afd436eb 100644
--- a/router/server/multishard.go
+++ b/router/server/multishard.go
@@ -461,11 +461,16 @@ func (m *MultiShardServer) Sync() int64 {
 }
 
 func (m *MultiShardServer) Cancel() error {
-	var err error
+	var errs []error
 	for _, sh := range m.activeShards {
-		err = sh.Cancel()
+		if err := sh.Cancel(); err != nil {
+			errs = append(errs, err)
+		}
+	}
+	if len(errs) > 0 {
+		return fmt.Errorf("errors occurred during cancel: %w", fmt.Errorf("%v", errs))
 	}
-	return err
+	return nil
 }
 
 func (m *MultiShardServer) SetTxStatus(tx txstatus.TXStatus) {