diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 2b50ebc..60fea01 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -67,7 +67,6 @@
           perspective(),
           connection->version(),
           this,
-          num_expected_unidirectional_static_streams,
           kDefaultMaxStreamsPerConnection,
           kDefaultMaxStreamsPerConnection,
           config_.GetMaxIncomingBidirectionalStreamsToSend(),
@@ -999,6 +998,15 @@
     if (config_.HasReceivedMaxIncomingUnidirectionalStreams()) {
       max_streams = config_.ReceivedMaxIncomingUnidirectionalStreams();
     }
+    if (max_streams < num_expected_unidirectional_static_streams_) {
+      // TODO(ianswett): Change this to an application error for HTTP/3.
+      QUIC_DLOG(ERROR) << "Received unidirectional stream limit of "
+                       << max_streams << " < "
+                       << num_expected_unidirectional_static_streams_;
+      connection_->CloseConnection(
+          QUIC_MAX_STREAMS_ERROR, "New unidirectional stream limit is too low.",
+          ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+    }
     QUIC_DVLOG(1) << ENDPOINT
                   << "Setting Unidirectional outgoing_max_streams_ to "
                   << max_streams;
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc
index b39d85e..d9f3477 100644
--- a/quic/core/quic_stream_id_manager.cc
+++ b/quic/core/quic_stream_id_manager.cc
@@ -24,14 +24,12 @@
     bool unidirectional,
     Perspective perspective,
     QuicTransportVersion transport_version,
-    QuicStreamCount num_expected_static_streams,
     QuicStreamCount max_allowed_outgoing_streams,
     QuicStreamCount max_allowed_incoming_streams)
     : delegate_(delegate),
       unidirectional_(unidirectional),
       perspective_(perspective),
       transport_version_(transport_version),
-      num_expected_static_streams_(num_expected_static_streams),
       is_config_negotiated_(false),
       outgoing_max_streams_(max_allowed_outgoing_streams),
       next_outgoing_stream_id_(GetFirstOutgoingStreamId()),
@@ -96,16 +94,6 @@
 // Used when configuration has been done and we have an initial
 // maximum stream count from the peer.
 bool QuicStreamIdManager::SetMaxOpenOutgoingStreams(size_t max_open_streams) {
-  if (max_open_streams < num_expected_static_streams_) {
-    QUIC_DLOG(ERROR) << "Received max streams " << max_open_streams << " < "
-                     << num_expected_static_streams_;
-    delegate_->OnError(QUIC_MAX_STREAMS_ERROR,
-                       unidirectional_
-                           ? "New unidirectional stream limit is too low."
-                           : "New bidirectional stream limit is too low.");
-
-    return false;
-  }
   if (using_default_max_streams_) {
     // This is the first MAX_STREAMS/transport negotiation we've received. Treat
     // this a bit differently than later ones. The difference is that
diff --git a/quic/core/quic_stream_id_manager.h b/quic/core/quic_stream_id_manager.h
index e39e14f..f1b6556 100644
--- a/quic/core/quic_stream_id_manager.h
+++ b/quic/core/quic_stream_id_manager.h
@@ -58,7 +58,6 @@
                       bool unidirectional,
                       Perspective perspective,
                       QuicTransportVersion transport_version,
-                      QuicStreamCount num_expected_static_streams,
                       QuicStreamCount max_allowed_outgoing_streams,
                       QuicStreamCount max_allowed_incoming_streams);
 
@@ -213,9 +212,6 @@
   // Transport version used for this manager.
   const QuicTransportVersion transport_version_;
 
-  // Number of expected static streams.
-  const QuicStreamCount num_expected_static_streams_;
-
   // True if the config has been negotiated_;
   bool is_config_negotiated_;
 
diff --git a/quic/core/quic_stream_id_manager_test.cc b/quic/core/quic_stream_id_manager_test.cc
index 2ff55be..6916ba8 100644
--- a/quic/core/quic_stream_id_manager_test.cc
+++ b/quic/core/quic_stream_id_manager_test.cc
@@ -63,7 +63,6 @@
                            IsUnidirectional(),
                            perspective(),
                            transport_version(),
-                           0,
                            kDefaultMaxStreamsPerConnection,
                            kDefaultMaxStreamsPerConnection) {
     DCHECK(VersionHasIetfQuicFrames(transport_version()));
diff --git a/quic/core/uber_quic_stream_id_manager.cc b/quic/core/uber_quic_stream_id_manager.cc
index 3fb5be8..6d1121a 100644
--- a/quic/core/uber_quic_stream_id_manager.cc
+++ b/quic/core/uber_quic_stream_id_manager.cc
@@ -13,7 +13,6 @@
     Perspective perspective,
     ParsedQuicVersion version,
     QuicStreamIdManager::DelegateInterface* delegate,
-    QuicStreamCount num_expected_unidirectiona_static_streams,
     QuicStreamCount max_open_outgoing_bidirectional_streams,
     QuicStreamCount max_open_outgoing_unidirectional_streams,
     QuicStreamCount max_open_incoming_bidirectional_streams,
@@ -22,7 +21,6 @@
                                        /*unidirectional=*/false,
                                        perspective,
                                        version.transport_version,
-                                       0,
                                        max_open_outgoing_bidirectional_streams,
                                        max_open_incoming_bidirectional_streams),
       unidirectional_stream_id_manager_(
@@ -30,7 +28,6 @@
           /*unidirectional=*/true,
           perspective,
           version.transport_version,
-          num_expected_unidirectiona_static_streams,
           max_open_outgoing_unidirectional_streams,
           max_open_incoming_unidirectional_streams) {}
 
diff --git a/quic/core/uber_quic_stream_id_manager.h b/quic/core/uber_quic_stream_id_manager.h
index 75fcb9d..13aa1b5 100644
--- a/quic/core/uber_quic_stream_id_manager.h
+++ b/quic/core/uber_quic_stream_id_manager.h
@@ -24,7 +24,6 @@
       Perspective perspective,
       ParsedQuicVersion version,
       QuicStreamIdManager::DelegateInterface* delegate,
-      QuicStreamCount num_expected_unidirectional_static_streams,
       QuicStreamCount max_open_outgoing_bidirectional_streams,
       QuicStreamCount max_open_outgoing_unidirectional_streams,
       QuicStreamCount max_open_incoming_bidirectional_streams,
diff --git a/quic/core/uber_quic_stream_id_manager_test.cc b/quic/core/uber_quic_stream_id_manager_test.cc
index 265756f..fca11a9 100644
--- a/quic/core/uber_quic_stream_id_manager_test.cc
+++ b/quic/core/uber_quic_stream_id_manager_test.cc
@@ -33,7 +33,6 @@
       : manager_(perspective(),
                  version(),
                  &delegate_,
-                 /*num_expected_unidirectional_static_streams=*/0,
                  kDefaultMaxStreamsPerConnection,
                  kDefaultMaxStreamsPerConnection,
                  kDefaultMaxStreamsPerConnection,
