diff --git a/transport/http2_client.go b/transport/http2_client.go
index 8fa61bbb..a55c3c10 100644
--- a/transport/http2_client.go
+++ b/transport/http2_client.go
@@ -1022,8 +1022,7 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) {
 	atomic.StoreUint32(&s.bytesReceived, 1)
 	var state decodeState
 	if err := state.decodeResponseHeader(frame); err != nil {
-		// TODO(mmukhi, dfawley): Perhaps send a reset stream.
-		t.closeStream(s, err, false, http2.ErrCodeNo, nil, nil, false)
+		t.closeStream(s, err, true, http2.ErrCodeProtocol, nil, nil, false)
 		// Something wrong. Stops reading even when there is remaining.
 		return
 	}
@@ -1105,8 +1104,7 @@ func (t *http2Client) reader() {
 				t.mu.Unlock()
 				if s != nil {
 					// use error detail to provide better err message
-					// TODO(mmukhi, dfawley): Perhaps send a RST_STREAM to the server.
-					t.closeStream(s, streamErrorf(http2ErrConvTab[se.Code], "%v", t.framer.fr.ErrorDetail()), false, http2.ErrCodeNo, nil, nil, false)
+					t.closeStream(s, streamErrorf(http2ErrConvTab[se.Code], "%v", t.framer.fr.ErrorDetail()), true, http2.ErrCodeProtocol, nil, nil, false)
 				}
 				continue
 			} else {