If fetch is executed immediately after document become visible (on visibilitychange event), it will fail after 20-40s with TypeError with message Load failed.
If it is executed after short delay after document become visible, fetch will likely to succeed.
Sample app to reproduce, with video: https://denysoblohin-okta.github.io/ios_fetch_bug
Source code of sample app: https://github.com/denysoblohin-okta/ios_fetch_bug/blob/main/index.html