diff --git a/src/hypercorn/protocol/h2.py b/src/hypercorn/protocol/h2.py index b19a2bcc..6f3ebe66 100644 --- a/src/hypercorn/protocol/h2.py +++ b/src/hypercorn/protocol/h2.py @@ -255,12 +255,15 @@ async def _handle_events(self, events: List[h2.events.Event]) -> None: if self.keep_alive_requests > self.config.keep_alive_max_requests: self.connection.close_connection() elif isinstance(event, h2.events.DataReceived): - await self.streams[event.stream_id].handle( - Body(stream_id=event.stream_id, data=event.data) - ) - self.connection.acknowledge_received_data( - event.flow_controlled_length, event.stream_id - ) + try: + await self.streams[event.stream_id].handle( + Body(stream_id=event.stream_id, data=event.data) + ) + self.connection.acknowledge_received_data( + event.flow_controlled_length, event.stream_id + ) + except KeyError: + pass elif isinstance(event, h2.events.StreamEnded): try: await self.streams[event.stream_id].handle(EndBody(stream_id=event.stream_id))