diff --git a/quic/core/quic_time_wait_list_manager.cc b/quic/core/quic_time_wait_list_manager.cc
index 6fba2eb..fa62fc5 100644
--- a/quic/core/quic_time_wait_list_manager.cc
+++ b/quic/core/quic_time_wait_list_manager.cc
@@ -161,18 +161,15 @@
           if (connection_data->encryption_level == ENCRYPTION_INITIAL) {
             QUIC_CODE_COUNT(
                 quic_encryption_none_termination_packets_for_short_header);
-            if (GetQuicReloadableFlag(quic_always_reset_short_header_packets)) {
-              QUIC_RELOADABLE_FLAG_COUNT(
-                  quic_always_reset_short_header_packets);
-              // Send stateless reset in response to short header packets,
-              // because ENCRYPTION_INITIAL termination packets will not be
-              // processed by clients.
-              SendPublicReset(self_address, peer_address, connection_id,
-                              connection_data->ietf_quic,
-                              std::move(packet_context));
-              return;
-            }
-          } else if (connection_data->encryption_level == ENCRYPTION_ZERO_RTT) {
+            // Send stateless reset in response to short header packets,
+            // because ENCRYPTION_INITIAL termination packets will not be
+            // processed by clients.
+            SendPublicReset(self_address, peer_address, connection_id,
+                            connection_data->ietf_quic,
+                            std::move(packet_context));
+            return;
+          }
+          if (connection_data->encryption_level == ENCRYPTION_ZERO_RTT) {
             QUIC_CODE_COUNT(quic_zero_rtt_termination_packets_for_short_header);
           }
           break;
diff --git a/quic/core/quic_time_wait_list_manager_test.cc b/quic/core/quic_time_wait_list_manager_test.cc
index aa0c911..a391390 100644
--- a/quic/core/quic_time_wait_list_manager_test.cc
+++ b/quic/core/quic_time_wait_list_manager_test.cc
@@ -560,18 +560,11 @@
       QuicTimeWaitListManager::SEND_TERMINATION_PACKETS, ENCRYPTION_INITIAL,
       &termination_packets);
 
-  if (GetQuicReloadableFlag(quic_always_reset_short_header_packets)) {
-    // Termination packet is not encrypted, instead, send stateless reset.
-    EXPECT_CALL(writer_,
-                WritePacket(_, _, self_address_.host(), peer_address_, _))
-        .With(Args<0, 1>(PublicResetPacketEq(connection_id_)))
-        .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0)));
-  } else {
-    // An unprocessable connection close is sent to peer.
-    EXPECT_CALL(writer_, WritePacket(_, kConnectionCloseLength,
-                                     self_address_.host(), peer_address_, _))
-        .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 1)));
-  }
+  // Termination packet is not encrypted, instead, send stateless reset.
+  EXPECT_CALL(writer_,
+              WritePacket(_, _, self_address_.host(), peer_address_, _))
+      .With(Args<0, 1>(PublicResetPacketEq(connection_id_)))
+      .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0)));
   // Processes IETF short header packet.
   time_wait_list_manager_.ProcessPacket(
       self_address_, peer_address_, connection_id_,
