diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index c42f39c..6db96fa 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -469,7 +469,7 @@
   SetPriority(priority);
 }
 
-bool QuicSpdyStream::OnStreamHeaderList(bool fin,
+void QuicSpdyStream::OnStreamHeaderList(bool fin,
                                         size_t frame_len,
                                         const QuicHeaderList& header_list) {
   // TODO(b/134706391): remove |fin| argument.
@@ -482,7 +482,7 @@
   if (header_list.empty()) {
     OnHeadersTooLarge();
     if (IsDoneReading()) {
-      return false;
+      return;
     }
   }
   if (!headers_decompressed_) {
@@ -490,7 +490,6 @@
   } else {
     OnTrailingHeadersComplete(fin, frame_len, header_list);
   }
-  return !reading_stopped();
 }
 
 void QuicSpdyStream::OnHeadersTooLarge() {
@@ -846,12 +845,10 @@
   const QuicByteCount frame_length = headers_decompressed_
                                          ? trailers_length_.payload_length
                                          : headers_length_.payload_length;
-  bool result = OnStreamHeaderList(
-      /* fin = */ false, frame_length,
-      qpack_decoded_headers_accumulator_->quic_header_list());
-
+  OnStreamHeaderList(/* fin = */ false, frame_length,
+                     qpack_decoded_headers_accumulator_->quic_header_list());
   qpack_decoded_headers_accumulator_.reset();
-  return result;
+  return !sequencer()->IsClosed() && !reading_stopped();
 }
 
 size_t QuicSpdyStream::WriteHeadersImpl(
diff --git a/quic/core/http/quic_spdy_stream.h b/quic/core/http/quic_spdy_stream.h
index b90f680..57f2fe0 100644
--- a/quic/core/http/quic_spdy_stream.h
+++ b/quic/core/http/quic_spdy_stream.h
@@ -80,9 +80,8 @@
 
   // Called by the session when decompressed headers have been completely
   // delivered to this stream.  If |fin| is true, then this stream
-  // should be closed; no more data will be sent by the peer. Returns true if
-  // the headers are processed successfully without error.
-  virtual bool OnStreamHeaderList(bool fin,
+  // should be closed; no more data will be sent by the peer.
+  virtual void OnStreamHeaderList(bool fin,
                                   size_t frame_len,
                                   const QuicHeaderList& header_list);
 
