Background transfer is an invaluable feature if your app is relying on any critical network operation that could potentially drive your user’s attention away when running long, or being interrupted.
There are non-trivial challanges to solve before being able to support it in your apps though. Including limitations around authentication methods, response/error handling, and keeping the mysterious resume rate limiter happy.
After solving this puzzle with some pieces under-documented, almost impossible to debug and nerve-wracking to test, I’m here to share all our findings to help you understand and work comfortably with background sessions.