diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 2a77060..a1d0b6d 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -25,8 +25,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false)
 // If true, QuicGsoBatchWriter will support release time if it is available and the process has the permission to do so.
 QUIC_FLAG(FLAGS_quic_restart_flag_quic_support_release_time_for_gso, false)
-// If true, QuicIdleNetworkDetector::SetAlarm will become a noop if dectection has been stopped by QuicIdleNetworkDetector::StopDetection.
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_idle_network_detector_no_alarm_after_stopped, true)
 // If true, abort async QPACK header decompression in QuicSpdyStream::Reset() and in QuicSpdyStream::OnStreamReset().
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_abort_qpack_on_stream_reset, true)
 // If true, ack frequency frame can be sent from server to client.
diff --git a/quic/core/quic_idle_network_detector.cc b/quic/core/quic_idle_network_detector.cc
index ac6799e..05203df 100644
--- a/quic/core/quic_idle_network_detector.cc
+++ b/quic/core/quic_idle_network_detector.cc
@@ -36,12 +36,7 @@
       time_of_first_packet_sent_after_receiving_(QuicTime::Zero()),
       idle_network_timeout_(QuicTime::Delta::Infinite()),
       alarm_(
-          alarm_factory->CreateAlarm(arena->New<AlarmDelegate>(this), arena)) {
-  if (no_alarm_after_stopped_) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(
-        quic_idle_network_detector_no_alarm_after_stopped, 1, 2);
-  }
-}
+          alarm_factory->CreateAlarm(arena->New<AlarmDelegate>(this), arena)) {}
 
 void QuicIdleNetworkDetector::OnAlarm() {
   if (handshake_timeout_.IsInfinite()) {
@@ -99,10 +94,7 @@
 }
 
 void QuicIdleNetworkDetector::SetAlarm() {
-  if (no_alarm_after_stopped_ && stopped_) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(
-        quic_idle_network_detector_no_alarm_after_stopped, 2, 2);
-
+  if (stopped_) {
     // TODO(wub): If this QUIC_BUG fires, it indicates a problem in the
     // QuicConnection, which somehow called this function while disconnected.
     // That problem needs to be fixed.
diff --git a/quic/core/quic_idle_network_detector.h b/quic/core/quic_idle_network_detector.h
index 1665104..c380b0d 100644
--- a/quic/core/quic_idle_network_detector.h
+++ b/quic/core/quic_idle_network_detector.h
@@ -111,9 +111,6 @@
 
   // Whether |StopDetection| has been called.
   bool stopped_ = false;
-
-  const bool no_alarm_after_stopped_ =
-      GetQuicReloadableFlag(quic_idle_network_detector_no_alarm_after_stopped);
 };
 
 }  // namespace quic
diff --git a/quic/core/quic_idle_network_detector_test.cc b/quic/core/quic_idle_network_detector_test.cc
index 278b72b..21549d9 100644
--- a/quic/core/quic_idle_network_detector_test.cc
+++ b/quic/core/quic_idle_network_detector_test.cc
@@ -30,8 +30,6 @@
 class QuicIdleNetworkDetectorTest : public QuicTest {
  public:
   QuicIdleNetworkDetectorTest() {
-    SetQuicReloadableFlag(quic_idle_network_detector_no_alarm_after_stopped,
-                          true);
     clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1));
     detector_ = std::make_unique<QuicIdleNetworkDetector>(
         &delegate_, clock_.Now(), &arena_, &alarm_factory_);
