diff --git a/quic/core/congestion_control/general_loss_algorithm.cc b/quic/core/congestion_control/general_loss_algorithm.cc
index d42896c..356501f 100644
--- a/quic/core/congestion_control/general_loss_algorithm.cc
+++ b/quic/core/congestion_control/general_loss_algorithm.cc
@@ -66,11 +66,7 @@
   loss_detection_timeout_ = QuicTime::Zero();
   if (!packets_acked.empty() &&
       packets_acked.front().packet_number == least_in_flight_) {
-    if (GetQuicReloadableFlag(quic_fix_packets_acked)) {
-      QUIC_RELOADABLE_FLAG_COUNT(quic_fix_packets_acked);
-    }
-    if ((!GetQuicReloadableFlag(quic_fix_packets_acked) ||
-         packets_acked.back().packet_number == largest_newly_acked) &&
+    if (packets_acked.back().packet_number == largest_newly_acked &&
         least_in_flight_ + packets_acked.size() - 1 == largest_newly_acked) {
       // Optimization for the case when no packet is missing. Please note,
       // packets_acked can include packets of different packet number space, so
diff --git a/quic/core/congestion_control/uber_loss_algorithm_test.cc b/quic/core/congestion_control/uber_loss_algorithm_test.cc
index c70f176..84b9c99 100644
--- a/quic/core/congestion_control/uber_loss_algorithm_test.cc
+++ b/quic/core/congestion_control/uber_loss_algorithm_test.cc
@@ -184,13 +184,8 @@
   AckPackets({5, 6});
   unacked_packets_->MaybeUpdateLargestAckedOfPacketNumberSpace(
       APPLICATION_DATA, QuicPacketNumber(6));
-  if (GetQuicReloadableFlag(quic_fix_packets_acked)) {
-    // Verify packet 2 is detected lost.
-    VerifyLosses(6, packets_acked_, std::vector<uint64_t>{2});
-  } else {
-    // No losses, packet 2 is in limbo.
-    VerifyLosses(6, packets_acked_, std::vector<uint64_t>{});
-  }
+  // Verify packet 2 is detected lost.
+  VerifyLosses(6, packets_acked_, std::vector<uint64_t>{2});
 }
 
 }  // namespace
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index ae5722b..8c2da38 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -2946,15 +2946,10 @@
 
   uint64_t acked2[] = {5, 6};
   uint64_t loss[] = {2};
-  if (GetQuicReloadableFlag(quic_fix_packets_acked)) {
-    // Verify packet 2 is detected lost.
-    EXPECT_CALL(notifier_, OnFrameLost(_)).Times(1);
-    ExpectAcksAndLosses(true, acked2, QUIC_ARRAYSIZE(acked2), loss,
-                        QUIC_ARRAYSIZE(loss));
-  } else {
-    // Packet 2 in limbo, bummer.
-    ExpectAcksAndLosses(true, acked2, QUIC_ARRAYSIZE(acked2), nullptr, 0);
-  }
+  // Verify packet 2 is detected lost.
+  EXPECT_CALL(notifier_, OnFrameLost(_)).Times(1);
+  ExpectAcksAndLosses(true, acked2, QUIC_ARRAYSIZE(acked2), loss,
+                      QUIC_ARRAYSIZE(loss));
   manager_.OnAckFrameStart(QuicPacketNumber(6), QuicTime::Delta::Infinite(),
                            clock_.Now());
   manager_.OnAckRange(QuicPacketNumber(3), QuicPacketNumber(7));
