diff --git a/quic/core/http/http_decoder.cc b/quic/core/http/http_decoder.cc
index 1a160e9..78703a6 100644
--- a/quic/core/http/http_decoder.cc
+++ b/quic/core/http/http_decoder.cc
@@ -144,24 +144,21 @@
     DCHECK(success);
   }
 
-  if (GetQuicReloadableFlag(quic_reject_spdy_frames)) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_reject_spdy_frames);
-    // https://tools.ietf.org/html/draft-ietf-quic-http-31#section-7.2.8
-    // specifies that the following frames are treated as errors.
-    if (current_frame_type_ ==
-            static_cast<uint64_t>(http2::Http2FrameType::PRIORITY) ||
-        current_frame_type_ ==
-            static_cast<uint64_t>(http2::Http2FrameType::PING) ||
-        current_frame_type_ ==
-            static_cast<uint64_t>(http2::Http2FrameType::WINDOW_UPDATE) ||
-        current_frame_type_ ==
-            static_cast<uint64_t>(http2::Http2FrameType::CONTINUATION)) {
-      RaiseError(
-          QUIC_HTTP_RECEIVE_SPDY_FRAME,
-          quiche::QuicheStrCat("HTTP/2 frame received in a HTTP/3 connection: ",
-                               current_frame_type_));
-      return false;
-    }
+  // https://tools.ietf.org/html/draft-ietf-quic-http-31#section-7.2.8
+  // specifies that the following frames are treated as errors.
+  if (current_frame_type_ ==
+          static_cast<uint64_t>(http2::Http2FrameType::PRIORITY) ||
+      current_frame_type_ ==
+          static_cast<uint64_t>(http2::Http2FrameType::PING) ||
+      current_frame_type_ ==
+          static_cast<uint64_t>(http2::Http2FrameType::WINDOW_UPDATE) ||
+      current_frame_type_ ==
+          static_cast<uint64_t>(http2::Http2FrameType::CONTINUATION)) {
+    RaiseError(
+        QUIC_HTTP_RECEIVE_SPDY_FRAME,
+        quiche::QuicheStrCat("HTTP/2 frame received in a HTTP/3 connection: ",
+                             current_frame_type_));
+    return false;
   }
   state_ = STATE_READING_FRAME_LENGTH;
   return true;
diff --git a/quic/core/http/http_decoder_test.cc b/quic/core/http/http_decoder_test.cc
index d56626f..f7b84bd 100644
--- a/quic/core/http/http_decoder_test.cc
+++ b/quic/core/http/http_decoder_test.cc
@@ -783,7 +783,6 @@
 }
 
 TEST_F(HttpDecoderTest, Http2Frame) {
-  SetQuicReloadableFlag(quic_reject_spdy_frames, true);
   std::string input = absl::HexStringToBytes(
       "06"    // PING in HTTP/2 but not supported in HTTP/3.
       "05"    // length
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 8122266..64b375f 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -53,7 +53,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_new_priority_update_frame, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_pass_path_response_to_validator, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_process_undecryptable_packets_after_async_decrypt_callback, true)
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_reject_spdy_frames, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_reject_spdy_settings, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_round_up_tiny_bandwidth, true)
