diff --git a/src/httpcore2/httpcore2/_async/http2.py b/src/httpcore2/httpcore2/_async/http2.py index ae3e764c..156b3ea0 100644 --- a/src/httpcore2/httpcore2/_async/http2.py +++ b/src/httpcore2/httpcore2/_async/http2.py @@ -123,6 +123,7 @@ async def handle_async_request(self, request: Request) -> Response: except h2.exceptions.NoAvailableStreamIDError: # pragma: no cover self._used_all_stream_ids = True self._request_count -= 1 + await self._max_streams_semaphore.release() raise ConnectionNotAvailable() try: diff --git a/src/httpcore2/httpcore2/_sync/http2.py b/src/httpcore2/httpcore2/_sync/http2.py index 0512c4a2..ca3fc215 100644 --- a/src/httpcore2/httpcore2/_sync/http2.py +++ b/src/httpcore2/httpcore2/_sync/http2.py @@ -123,6 +123,7 @@ def handle_request(self, request: Request) -> Response: except h2.exceptions.NoAvailableStreamIDError: # pragma: no cover self._used_all_stream_ids = True self._request_count -= 1 + self._max_streams_semaphore.release() raise ConnectionNotAvailable() try: