maxNumRetry was set at the top of the load policy, which hls.js 1.5.x
ignores — it reads the budget from the errorRetry/timeoutRetry
sub-objects. Net effect before: a fragment-load *timeout* (a CDN that
starts sending then stalls) got only the default 1 retry before fatal
fragLoadTimeOut.
Now (verified resolved in-browser):
maxTimeToFirstByteMs 15s first byte
maxLoadTimeMs 30s total load (finite -> stalls time out)
timeoutRetry.maxNumRetry 6 was 1
errorRetry.maxNumRetry 8 our proxy's 502 path