diff --git a/quic/core/http/quic_spdy_client_session_test.cc b/quic/core/http/quic_spdy_client_session_test.cc
index 63e373b..15ac198 100644
--- a/quic/core/http/quic_spdy_client_session_test.cc
+++ b/quic/core/http/quic_spdy_client_session_test.cc
@@ -98,7 +98,6 @@
     client_session_cache_ = client_cache.get();
     SetQuicRestartFlag(quic_enable_tls_resumption_v3, true);
     SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
-    SetQuicReloadableFlag(quic_fix_gquic_stream_type, true);
     client_crypto_config_ = std::make_unique<QuicCryptoClientConfig>(
         crypto_test_utils::ProofVerifierForTesting(), std::move(client_cache));
     server_crypto_config_ = crypto_test_utils::CryptoServerConfigForTesting();
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 16d030c..68fde60 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -100,7 +100,6 @@
       enable_round_robin_scheduling_(false),
       was_zero_rtt_rejected_(false),
       liveness_testing_in_progress_(false),
-      fix_gquic_stream_type_(GetQuicReloadableFlag(quic_fix_gquic_stream_type)),
       remove_streams_waiting_for_acks_(
           GetQuicReloadableFlag(quic_remove_streams_waiting_for_acks)),
       do_not_use_stream_map_(
@@ -1347,8 +1346,7 @@
   // Inform all existing outgoing unidirectional streams about the new window.
   for (auto const& kv : stream_map_) {
     const QuicStreamId id = kv.first;
-    if (fix_gquic_stream_type_ && !version().HasIetfQuicFrames()) {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_fix_gquic_stream_type, 1, 3);
+    if (!version().HasIetfQuicFrames()) {
       if (kv.second->type() == BIDIRECTIONAL) {
         continue;
       }
@@ -1381,8 +1379,7 @@
   // Inform all existing outgoing bidirectional streams about the new window.
   for (auto const& kv : stream_map_) {
     const QuicStreamId id = kv.first;
-    if (fix_gquic_stream_type_ && !version().HasIetfQuicFrames()) {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_fix_gquic_stream_type, 2, 3);
+    if (!version().HasIetfQuicFrames()) {
       if (kv.second->type() != BIDIRECTIONAL) {
         continue;
       }
@@ -1415,8 +1412,7 @@
   // Inform all existing incoming bidirectional streams about the new window.
   for (auto const& kv : stream_map_) {
     const QuicStreamId id = kv.first;
-    if (fix_gquic_stream_type_ && !version().HasIetfQuicFrames()) {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_fix_gquic_stream_type, 3, 3);
+    if (!version().HasIetfQuicFrames()) {
       if (kv.second->type() != BIDIRECTIONAL) {
         continue;
       }
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index a366ea5..9566ea1 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -853,9 +853,6 @@
   // creation of new outgoing bidirectional streams.
   bool liveness_testing_in_progress_;
 
-  // Latched value of flag quic_fix_gquic_stream_type.
-  const bool fix_gquic_stream_type_;
-
   // Latched value of flag quic_remove_streams_waiting_for_acks.
   const bool remove_streams_waiting_for_acks_;
 
diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index de43503..aaadac1 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -430,8 +430,7 @@
 // static
 bool QuicUtils::IsBidirectionalStreamId(QuicStreamId id,
                                         ParsedQuicVersion version) {
-  DCHECK(!GetQuicReloadableFlag(quic_fix_gquic_stream_type) ||
-         version.HasIetfQuicFrames());
+  DCHECK(version.HasIetfQuicFrames());
   return id % 4 < 2;
 }
 
@@ -440,8 +439,7 @@
                                     Perspective perspective,
                                     bool peer_initiated,
                                     ParsedQuicVersion version) {
-  DCHECK(!GetQuicReloadableFlag(quic_fix_gquic_stream_type) ||
-         version.HasIetfQuicFrames());
+  DCHECK(version.HasIetfQuicFrames());
   if (IsBidirectionalStreamId(id, version)) {
     return BIDIRECTIONAL;
   }
