     
     private func save()
     {
-        self.archiver.save(object: self.deletions, key: type(of: self).DeletionsArchiveKey)
+        guard let deletions = self.deletions else
+        {
+            return
+        }
+        
+        self.archiver.save(object: deletions, key: type(of: self).DeletionsArchiveKey)
     }
     
     // MARK: Public API

    
    // MARK:
    
    private var deletions: [VideoUri: Int] = [:]
    private let operationQueue: OperationQueue
    private let archiver: KeyedArchiver
    private let shouldLoadArchive: Bool

                {
                    if let response = error.userInfo[AFNetworkingOperationFailingURLResponseErrorKey] as? HTTPURLResponse, response.statusCode == 404
                    {
                        strongSelf.deletions?.removeValue(forKey: uri) // The video has already been deleted
                        strongSelf.save()

                        return
                    }
                    
                    if let retryCount = strongSelf.deletions?[uri], retryCount > 0
                    {
                        let newRetryCount = retryCount - 1
                        strongSelf.deleteVideo(withURI: uri, retryCount: newRetryCount) // Decrement the retryCount and try again
                    }
                    else
                    {
                        strongSelf.deletions?.removeValue(forKey: uri) // We retried the required number of times, nothing more to do
                        strongSelf.save()
                    }
                }
                else
                {
                    strongSelf.deletions?.removeValue(forKey: uri)
                    strongSelf.save()
                }
            })
