diff --git a/api/api.go b/api/api.go
index 25cbf59..7b0a202 100644
--- a/api/api.go
+++ b/api/api.go
@@ -273,7 +273,6 @@
 
 // ListBookings calls the maps booking ListBookings rpc and compares the return with all input bookings.
 func ListBookings(tB Bookings, conn *HTTPConnection) (Bookings, error) {
-	var out Bookings
 	reqPB := &mpb.ListBookingsRequest{
 		UserId: userID,
 	}
@@ -291,12 +290,16 @@
 	}
 
 	gB := Bookings(resp.GetBookings())
-	if len(gB) != len(tB) {
-		return nil, fmt.Errorf("number of bookings differ, ListBookings invalid. Got: %d, Want: %d. Abandoning all bookings from this flow", len(gB), len(tB))
+	if len(tB) == 0 {
+		log.Printf("ListBookings returning %d found bookings", len(gB))
+		return gB, nil
 	}
-
+	if len(gB) != len(tB) {
+		log.Printf("ListBookings number of bookings differed unexpectedly. Got: %d, Want: %d.", len(gB), len(tB))
+	}
 	sort.Sort(gB)
 	sort.Sort(tB)
+	var out Bookings
 	for i := 0; i < len(tB); i++ {
 		if iE := utils.ValidateBooking(gB[i], tB[i]); iE != nil {
 			log.Printf("ListBookings invalid, %s, abandoning slot %d/%d", iE.Error(), i, len(tB))
@@ -304,7 +307,7 @@
 		}
 		out = append(out, tB[i])
 	}
-
+	log.Printf("ListBookings returning %d bookings", len(out))
 	return out, nil
 }
 
