Canceling multiple HTTP/2 requests leads to unrecoverable connection timeouts

Viewed 26

I have a native iOS app that loads multiple videos from AWS cloudfront via HTTP/2 requests. If the user skips to the next video, I cancel the request and start the new one. After some cancels I get timeouts for the following requests and the connection seems to be unrecoverably broken.

edit
CloudFront monitoring shows only 200 responses – so no errors/timeouts are reported.
Using Charles Proxy for debugging shows new requests but they never receive any data ...
edit end

To check if this is a iOS problem or not, I rebuilt the same logic in NodeJS (using got) and ran into the same problems. So it's not iOS-related.

When using axios (which only supports HTTP/1.1) for doing the actual requests in Node, everything worked as expected.

So I tried and disabled HTTP/2 for my cloudfront distribution and after that the iOS implementation also worked.

Is this a known problem with HTTP/2? That canceling requests can lead to timeouts? I tried searching the web/SO but couldn't find anything helpful.

How can I get this to work with HTTP/2? Or should I just keep using HTTP/1.1?

0 Answers
Related