         }
     }
     
-    private func handle(error: Error, fails: inout Int) throws {
-        fails += 1
-
-        guard fails >= maxFails else {
-            currentController?.reload()
+    private func handle(error: Error, fails: Int) throws {
+        guard fails >= maxFails - 1 else {
             return
         }
         

                urlRequest: urlRequest,
                onResult: { [weak self] controllerResult in
                    do {
                        if let handledResult = try self?.handle(result: controllerResult, fails: &fails) {
                            result = .response(handledResult)
                        }
                    } catch let error {

                    
                    if result != nil {
                        self?.currentController?.dismiss()
                    } else {
                        fails += 1
                        self?.currentController?.reload()
                    }
                },
                onDismiss: {
