I create new NSURLSession with following configs
if (!self.session) { NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundS
That is the expected behaviour, when you cancel tasks on a session they might still call the delegate method.
Have you check the state of the given task? It should be NSURLSessionTaskStateCanceling.
NSURLSessionTaskStateCanceling