diff --git a/httpcore/_async/http2.py b/httpcore/_async/http2.py index dbd0beeb4..9c1482e67 100644 --- a/httpcore/_async/http2.py +++ b/httpcore/_async/http2.py @@ -136,6 +136,7 @@ async def handle_async_request(self, request: Request) -> Response: except h2.exceptions.NoAvailableStreamIDError: # pragma: nocover self._used_all_stream_ids = True self._request_count -= 1 + await self._max_streams_semaphore.release() raise ConnectionNotAvailable() try: diff --git a/httpcore/_sync/http2.py b/httpcore/_sync/http2.py index ddcc18900..d22e0fdac 100644 --- a/httpcore/_sync/http2.py +++ b/httpcore/_sync/http2.py @@ -136,6 +136,7 @@ def handle_request(self, request: Request) -> Response: except h2.exceptions.NoAvailableStreamIDError: # pragma: nocover self._used_all_stream_ids = True self._request_count -= 1 + self._max_streams_semaphore.release() raise ConnectionNotAvailable() try: