load failed with error Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort"

I am using Xcode 10 and facing a crash on my iPhone running on iOS 12. The issue is put the application in the background, wait for few seconds and restore it to foreground state using firebase notification or directly open the app.


I am using Alamofire for requests, If the user briefly puts the app into the background, the URL request gets cancelled with the error 53 above.

I noticed the same is true for any url request that does not complete while the app is active.

Replies

When your app is moved to the background, the system will typically suspend it. And once your app is suspended the system may reclaim resources from your network connections, which essentially tears those connections. You can read Technote 2277 Networking and Multitasking for more details about this.

How best to deal with this depends on type of requests:

  • For short-running requests you can use a

    UIApplication
    background task to prevent your app from being suspended on moving to the background.

    Note

    UIApplication
    background tasks can be a bit tricky. See my UIApplication Background Task Notes post for some hints and tips.
  • If you’re dealing with a long-running request — for example, downloading a large file — you should use an

    NSURLSession
    background session so that the system can continue the work even if your app gets suspended.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"