diff --git a/src/mux_h2.c b/src/mux_h2.c index 47df89e38..5fc754721 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -2493,6 +2493,7 @@ static void h2_detach(struct conn_stream *cs) */ if (eb_is_empty(&h2c->streams_by_id) && /* don't close if streams exist */ ((h2c->conn->flags & CO_FL_ERROR) || /* errors close immediately */ + (h2c->st0 >= H2_CS_ERROR && !h2c->task) || /* a timeout stroke earlier */ (h2c->flags & H2_CF_GOAWAY_FAILED) || (!h2c->mbuf->o && /* mux buffer empty, also process clean events below */ (conn_xprt_read0_pending(h2c->conn) ||