diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 0322b2dabef69de427c9a8c743d4be7092bc4dbb..4ba1ee0c056d0b1ae05c12b801fcf0597f9bc7f3 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -683,10 +683,14 @@ TEST_P(End2endTest, RequestStreamServerEarlyCancelTest) {
   auto stream = stub_->RequestStream(&context, &response);
   request.set_message("hello");
   int send_messages = 20;
-  while (send_messages > 0) {
+  while (send_messages > 10) {
     EXPECT_TRUE(stream->Write(request));
     send_messages--;
   }
+  while (send_messages > 0) {
+    stream->Write(request);
+    send_messages--;
+  }
   stream->WritesDone();
   Status s = stream->Finish();
   EXPECT_EQ(s.error_code(), StatusCode::CANCELLED);