diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index 3c6359f..c8e550d 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -886,21 +886,11 @@
 }
 
 bool QuicSpdySession::HasActiveRequestStreams() const {
-  if (GetQuicReloadableFlag(quic_active_streams_never_negative)) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_active_streams_never_negative);
-    DCHECK(static_cast<size_t>(stream_map().size()) >=
-           num_incoming_static_streams() + num_outgoing_static_streams());
-    return stream_map().size() - num_incoming_static_streams() -
-               num_outgoing_static_streams() >
-           0;
-  }
-  if (static_cast<size_t>(stream_map().size()) >
-      num_incoming_static_streams() + num_outgoing_static_streams()) {
-    return stream_map().size() - num_incoming_static_streams() -
-               num_outgoing_static_streams() >
-           0;
-  }
-  return false;
+  DCHECK_GE(static_cast<size_t>(stream_map().size()),
+            num_incoming_static_streams() + num_outgoing_static_streams());
+  return stream_map().size() - num_incoming_static_streams() -
+             num_outgoing_static_streams() >
+         0;
 }
 
 bool QuicSpdySession::ProcessPendingStream(PendingStream* pending) {
