Fly.io Proxy adds ~11 seconds Content Download delay to small JSON responses, app responds in 11 milliseconds

@johannes All Chrome instances share the same connection to the server:

With 4 incognito windows opened, they all point to the same app in my case:

❯ sudo ss -tpn | rg 66.241.125.91
ESTAB 0      0               192.168.88.19:52536           66.241.125.91:443   users:(("chrome",pid=361546,fd=60)) 

What likely happens is the exact same scenario I described, but on your local machine and not between our edges and workers.

Depending on which max HTTP/2 stream and connection window sizes Chrome allows this is gonna break sooner or later.

Firefox could be using different values and that’s why it works.


Thanks Pavel, that makes sense now. I can confirm:

  • 4 different browsers (Chrome, Firefox, Safari, Brave) each in their own window → no delay
  • 4 windows in the same Chrome/Brave → 10-50s delay, all resolve simultaneously

So the root cause seems to be Chrome sharing a single HTTP/2 connection across all windows. The video saturates the connection-level flow control window, blocking small navigation requests.

Interestingly, the video’s total file size doesn’t matter: I tested with 10MB, 30MB, and 200MB videos and the behavior is the same. Looks like Chrome only buffers a fixed amount via range requests, but that’s enough to fill the HTTP/2 flow control window.

We’ll move video assets to a separate domain as a fix.