diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index ace0c66..c523aed 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -48,7 +48,6 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_move_clock_now, false, false, "If true, move the call to clock.Now() in QuicPacketReader::ReadAndDispatchPackets to after socket_api_.ReadMultiplePackets().")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_no_write_control_frame_upon_connection_close, false, true, "If trrue, early return before write control frame in OnCanWrite() if the connection is already closed.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_no_write_control_frame_upon_connection_close2, false, true, "If true, QuicSession will block outgoing control frames when the connection is closed.")
-QUICHE_FLAG(bool, quiche_reloadable_flag_quic_not_instantiate_unused_qpack_send_stream, true, true, "When qpack_maximum_dynamic_table_capacity is zero, don't bother to instantiate the unused QpackSendStream.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_notify_ack_listener_earlier, true, true, "If true, call QuicAckListenerInterface::OnPacketAcked() before moving the stream to closed stream list.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_notify_stream_soon_to_destroy, true, true, "If true, notify each QUIC stream before it gets destroyed and update ACK listener before that.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_on_packet_header_return_connected, false, true, "If true, QuicConnection::OnPacketHeader will return connected_ at the end of the function.")
diff --git a/quiche/quic/core/http/quic_spdy_session.cc b/quiche/quic/core/http/quic_spdy_session.cc
index a74ce79..2ad8837 100644
--- a/quiche/quic/core/http/quic_spdy_session.cc
+++ b/quiche/quic/core/http/quic_spdy_session.cc
@@ -1642,9 +1642,7 @@
   // capacity is always zero and encoder's dynamic table capacity is MIN(0,
   // SETTINGS_QPACK_MAX_TABLE_CAPACITY from peer) = 0. Hence, we don't need to
   // instantiate qpack send streams for both decoder and encoder.
-  if (GetQuicheReloadableFlag(quic_not_instantiate_unused_qpack_send_stream) &&
-      qpack_maximum_dynamic_table_capacity_ == 0) {
-    QUICHE_RELOADABLE_FLAG_COUNT(quic_not_instantiate_unused_qpack_send_stream);
+  if (qpack_maximum_dynamic_table_capacity_ == 0) {
     return;
   }
 
diff --git a/quiche/quic/core/http/quic_spdy_session_test.cc b/quiche/quic/core/http/quic_spdy_session_test.cc
index a3509a6..63a6633 100644
--- a/quiche/quic/core/http/quic_spdy_session_test.cc
+++ b/quiche/quic/core/http/quic_spdy_session_test.cc
@@ -2136,14 +2136,8 @@
       QpackEncoderPeer::header_table(qpack_encoder);
   EXPECT_EQ(0, encoder_header_table->dynamic_table_capacity());
   EXPECT_EQ(capacity, encoder_header_table->maximum_dynamic_table_capacity());
-  if (GetQuicReloadableFlag(quic_not_instantiate_unused_qpack_send_stream)) {
-    EXPECT_EQ(nullptr, QuicSpdySessionPeer::GetQpackDecoderSendStream(
-                           &session_.value()));
-
-  } else {
-    EXPECT_NE(nullptr, QuicSpdySessionPeer::GetQpackDecoderSendStream(
-                           &session_.value()));
-  }
+  EXPECT_EQ(nullptr,
+            QuicSpdySessionPeer::GetQpackDecoderSendStream(&session_.value()));
 
   // Verify that the advertised capacity is 0.
   SettingsFrame outgoing_settings = session_->settings();
@@ -2979,13 +2973,8 @@
       QpackEncoderPeer::header_table(qpack_encoder);
   EXPECT_EQ(capacity, encoder_header_table->maximum_dynamic_table_capacity());
   EXPECT_EQ(0, encoder_header_table->dynamic_table_capacity());
-  if (GetQuicheReloadableFlag(quic_not_instantiate_unused_qpack_send_stream)) {
-    EXPECT_EQ(nullptr, QuicSpdySessionPeer::GetQpackDecoderSendStream(
-                           &session_.value()));
-  } else {
-    EXPECT_NE(nullptr, QuicSpdySessionPeer::GetQpackDecoderSendStream(
-                           &session_.value()));
-  }
+  EXPECT_EQ(nullptr,
+            QuicSpdySessionPeer::GetQpackDecoderSendStream(&session_.value()));
 
   // Verify that the advertised capacity is 0.
   SettingsFrame outgoing_settings = session_->settings();
