diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index 5e28f02..dcf5b04 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -29,7 +29,6 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_disable_version_rfcv1, false, "If true, disable QUIC version h3 (RFCv1).")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_discard_initial_packet_with_key_dropped, false, "If true, discard INITIAL packet if the key has been dropped.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_disable_resumption, true, "If true, disable resumption when receiving NRES connection option.")
-QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_http3_metadata_decoding, true, "If true, the HTTP/3 decoder will decode METADATA frames and not treat them as Unknown.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_mtu_discovery_at_server, false, "If true, QUIC will default enable MTU discovery at server, with a target of 1450 bytes.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_server_on_wire_ping, true, "If true, enable server retransmittable on wire PING.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_version_rfcv2, false, "When true, support RFC9369.")
diff --git a/quiche/quic/core/http/http_decoder.cc b/quiche/quic/core/http/http_decoder.cc
index 4ddcbcb..1503b5b 100644
--- a/quiche/quic/core/http/http_decoder.cc
+++ b/quiche/quic/core/http/http_decoder.cc
@@ -43,9 +43,7 @@
       current_type_field_length_(0),
       remaining_type_field_length_(0),
       error_(QUIC_NO_ERROR),
-      error_detail_(""),
-      enable_metadata_decoding_(
-          GetQuicReloadableFlag(quic_enable_http3_metadata_decoding)) {
+      error_detail_("") {
   QUICHE_DCHECK(visitor_);
 }
 
@@ -284,10 +282,8 @@
       continue_processing = visitor_->OnAcceptChFrameStart(header_length);
       break;
     default:
-      if (enable_metadata_decoding_ &&
-          current_frame_type_ ==
-              static_cast<uint64_t>(HttpFrameType::METADATA)) {
-        QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_http3_metadata_decoding, 1, 3);
+      if (current_frame_type_ ==
+          static_cast<uint64_t>(HttpFrameType::METADATA)) {
         continue_processing = visitor_->OnMetadataFrameStart(
             header_length, current_frame_length_);
         break;
@@ -386,10 +382,8 @@
       break;
     }
     default: {
-      if (enable_metadata_decoding_ &&
-          current_frame_type_ ==
-              static_cast<uint64_t>(HttpFrameType::METADATA)) {
-        QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_http3_metadata_decoding, 2, 3);
+      if (current_frame_type_ ==
+          static_cast<uint64_t>(HttpFrameType::METADATA)) {
         QuicByteCount bytes_to_read = std::min<QuicByteCount>(
             remaining_frame_length_, reader->BytesRemaining());
         absl::string_view payload;
@@ -456,10 +450,8 @@
       break;
     }
     default:
-      if (enable_metadata_decoding_ &&
-          current_frame_type_ ==
-              static_cast<uint64_t>(HttpFrameType::METADATA)) {
-        QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_http3_metadata_decoding, 3, 3);
+      if (current_frame_type_ ==
+          static_cast<uint64_t>(HttpFrameType::METADATA)) {
         continue_processing = visitor_->OnMetadataFrameEnd();
         break;
       }
diff --git a/quiche/quic/core/http/http_decoder.h b/quiche/quic/core/http/http_decoder.h
index a08c562..6d305e4 100644
--- a/quiche/quic/core/http/http_decoder.h
+++ b/quiche/quic/core/http/http_decoder.h
@@ -282,9 +282,6 @@
   std::array<char, sizeof(uint64_t)> length_buffer_;
   // Remaining unparsed type field data.
   std::array<char, sizeof(uint64_t)> type_buffer_;
-
-  // Latched value of --quic_enable_http3_metadata_decoding.
-  const bool enable_metadata_decoding_;
 };
 
 }  // namespace quic
diff --git a/quiche/quic/core/http/http_decoder_test.cc b/quiche/quic/core/http/http_decoder_test.cc
index 4fe08c0..b7f3255 100644
--- a/quiche/quic/core/http/http_decoder_test.cc
+++ b/quiche/quic/core/http/http_decoder_test.cc
@@ -498,9 +498,6 @@
 }
 
 TEST_F(HttpDecoderTest, MetadataFrame) {
-  if (!GetQuicReloadableFlag(quic_enable_http3_metadata_decoding)) {
-    return;
-  }
   InSequence s;
   std::string type_and_length_bytes;
   ASSERT_TRUE(
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index 035d21f..1649bc5 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -724,8 +724,6 @@
 }
 
 void QuicSpdyStream::RegisterMetadataVisitor(MetadataVisitor* visitor) {
-  QUIC_BUG_IF(Metadata visitor requires http3 metadata flag,
-              !GetQuicReloadableFlag(quic_enable_http3_metadata_decoding));
   metadata_visitor_ = visitor;
 }
 
diff --git a/quiche/quic/core/http/quic_spdy_stream_test.cc b/quiche/quic/core/http/quic_spdy_stream_test.cc
index d16217f..21fc928 100644
--- a/quiche/quic/core/http/quic_spdy_stream_test.cc
+++ b/quiche/quic/core/http/quic_spdy_stream_test.cc
@@ -2786,8 +2786,7 @@
 };
 
 TEST_P(QuicSpdyStreamIncrementalConsumptionTest, ReceiveMetadataFrame) {
-  if (!UsesHttp3() ||
-      !GetQuicReloadableFlag(quic_enable_http3_metadata_decoding)) {
+  if (!UsesHttp3()) {
     return;
   }
   StrictMock<MockMetadataVisitor> metadata_visitor;
@@ -2824,8 +2823,7 @@
 
 TEST_P(QuicSpdyStreamIncrementalConsumptionTest,
        ResetDuringMultipleMetadataFrames) {
-  if (!UsesHttp3() ||
-      !GetQuicReloadableFlag(quic_enable_http3_metadata_decoding)) {
+  if (!UsesHttp3()) {
     return;
   }
   StrictMock<MockMetadataVisitor> metadata_visitor;
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index 61393cb..8945726 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -73,8 +73,6 @@
 QUIC_FLAG(quic_reloadable_flag_quic_disable_batch_write, false)
 // If true, set burst token to 2 in cwnd bootstrapping experiment.
 QUIC_FLAG(quic_reloadable_flag_quic_conservative_bursts, false)
-// If true, the HTTP/3 decoder will decode METADATA frames and not treat them as Unknown.
-QUIC_FLAG(quic_reloadable_flag_quic_enable_http3_metadata_decoding, true)
 // If true, use BBRv2 as the default congestion controller. Takes precedence over --quic_default_to_bbr.
 QUIC_FLAG(quic_reloadable_flag_quic_default_to_bbr_v2, false)
 // If true, use a LRU cache to record client addresses of packets received on server\'s original address.
