diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index ce311c5..fb0c365 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -592,11 +592,7 @@
 }
 
 void QuicDispatcher::DeleteSessions() {
-  if (GetQuicReloadableFlag(
-          quic_connection_do_not_add_to_write_blocked_list_if_disconnected) &&
-      !write_blocked_list_.empty()) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(
-        quic_connection_do_not_add_to_write_blocked_list_if_disconnected, 2, 2);
+  if (!write_blocked_list_.empty()) {
     for (const std::unique_ptr<QuicSession>& session : closed_session_list_) {
       if (write_blocked_list_.erase(session->connection()) != 0) {
         QUIC_BUG << "QuicConnection was in WriteBlockedList before destruction";
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index bcd1a7e..ba6a9cf 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -1537,11 +1537,6 @@
 
 TEST_F(QuicDispatcherWriteBlockedListTest,
        RemoveConnectionFromWriteBlockedListWhenDeletingSessions) {
-  if (!GetQuicReloadableFlag(
-          quic_connection_do_not_add_to_write_blocked_list_if_disconnected)) {
-    return;
-  }
-
   dispatcher_->OnConnectionClosed(connection1()->connection_id(),
                                   QUIC_PACKET_WRITE_ERROR, "Closed by test.",
                                   ConnectionCloseSource::FROM_SELF);
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 2d9477f..e5eb207 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -323,11 +323,7 @@
 }
 
 void QuicSession::OnWriteBlocked() {
-  if (GetQuicReloadableFlag(
-          quic_connection_do_not_add_to_write_blocked_list_if_disconnected) &&
-      !connection_->connected()) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(
-        quic_connection_do_not_add_to_write_blocked_list_if_disconnected, 1, 2);
+  if (!connection_->connected()) {
     return;
   }
   if (visitor_) {
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 915d31b..ef8a02a 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -472,12 +472,7 @@
                                ConnectionCloseBehavior::SILENT_CLOSE);
   ASSERT_FALSE(connection_->connected());
 
-  if (GetQuicReloadableFlag(
-          quic_connection_do_not_add_to_write_blocked_list_if_disconnected)) {
-    EXPECT_CALL(session_visitor_, OnWriteBlocked(_)).Times(0);
-  } else {
-    EXPECT_CALL(session_visitor_, OnWriteBlocked(_)).Times(1);
-  }
+  EXPECT_CALL(session_visitor_, OnWriteBlocked(_)).Times(0);
   session_.OnWriteBlocked();
 }
 
