diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 49a38ce544bb8ee226895d30e48a298711a0dde6..0322b2dabef69de427c9a8c743d4be7092bc4dbb 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -734,7 +734,8 @@ TEST_P(End2endTest, ChannelState) {
   EXPECT_EQ(GRPC_CHANNEL_IDLE, channel_->GetState(true));
   EXPECT_TRUE(channel_->WaitForStateChange(GRPC_CHANNEL_IDLE,
                                            gpr_inf_future(GPR_CLOCK_REALTIME)));
-  EXPECT_EQ(GRPC_CHANNEL_CONNECTING, channel_->GetState(false));
+  auto state = channel_->GetState(false);
+  EXPECT_TRUE(state == GRPC_CHANNEL_CONNECTING || state == GRPC_CHANNEL_READY);
 }
 
 // Takes 10s.