         }
         
         if let error = error {
-            self.delegate?.networkIntegration(self, loadDidFailWith: error, for: photo)
             removeDataTask()
+            AXDispatchUtils.executeInBackground { [weak self] in
+                guard let `self` = self else {
+                    return
+                }
+                
+                self.delegate?.networkIntegration(self, loadDidFailWith: error, for: photo)
+            }
             return
         }
         

        }
        
        removeDataTask()
        self.delegate?.networkIntegration(self, loadDidFinishWith: photo)
    }

}

            return
        }
        
        AXDispatchUtils.executeInBackground { [weak self] in
            guard let `self` = self else {
                return
            }
            
            self.delegate?.networkIntegration?(self,
                                               didUpdateLoadingProgress: progress,
                                               for: photo)
        }
    }
    
    fileprivate func urlSessionWrapper(_ urlSessionWrapper: SimpleNetworkIntegrationURLSessionWrapper,
