From 7fd57b39a9cef51c60c0643130746446b2679d5e Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Sat, 4 Jul 2026 14:22:43 +0200 Subject: [PATCH] Release 4.5.1: bump h2 to 0.10.3 h2 0.10.3 releases a sender blocked on HTTP/2 flow control with {error, stream_reset} or {error, stream_closed} when the peer cancels the stream, instead of hanging for the connection's lifetime. --- NEWS.md | 12 ++++++++++++ rebar.config | 2 +- src/hackney.app.src | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index 23551131..658af227 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,17 @@ # NEWS +4.5.1 - 2026-07-04 +------------------ + +### Changed + +- Bump `h2` to 0.10.3. It fixes an HTTP/2 upload hang: a sender blocked on + flow control is now released with `{error, stream_reset}` or + `{error, stream_closed}` when the peer cancels the stream, instead of + hanging for the connection's lifetime. This affects hackney's streamed + request bodies over HTTP/2 when the server resets the stream + mid-backpressure. + 4.5.0 - 2026-07-04 ------------------ diff --git a/rebar.config b/rebar.config index aac240a6..e7739426 100644 --- a/rebar.config +++ b/rebar.config @@ -55,7 +55,7 @@ %% Pure Erlang QUIC + HTTP/3 stack {quic, "~>1.6.5"}, %% Pure Erlang HTTP/2 stack - {h2, "~>0.10.1"}, + {h2, "~>0.10.3"}, %% WebTransport client (HTTP/3 and HTTP/2) - powers the wt_* API {webtransport, "~>0.4.1"}, {idna, "~>7.1.0"}, diff --git a/src/hackney.app.src b/src/hackney.app.src index 452e5e93..615e02da 100644 --- a/src/hackney.app.src +++ b/src/hackney.app.src @@ -4,7 +4,7 @@ {application, hackney, [ {description, "Simple HTTP client with HTTP/1.1, HTTP/2, and HTTP/3 support"}, - {vsn, "4.5.0"}, + {vsn, "4.5.1"}, {registered, [hackney_pool]}, {applications, [kernel, stdlib,