diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 3193a2af58c5a559c07abc1b2c2c5c5897c50077..505984008aed1be55cacfe372f53413332f0e5b2 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -518,7 +518,9 @@ TEST_F(End2endTest, ServerCancelsRpc) {
   }
 
   Status s = stream->Finish();
-  EXPECT_EQ(grpc::StatusCode::CANCELLED, s.code());
+  // The final status could be either of CANCELLED or OK depending on
+  // who won the race.
+  EXPECT_GE(grpc::StatusCode::CANCELLED, s.code());
 }
 
 // Client cancels bidi stream after sending some messages