                         do {
                             self.pending3DSReceiptID = try self.threeDSecureWebView.load3DSWithPayload(userInfo)
                         } catch {
+                            self.loadingView.stopAnimating()
                             self.completionBlock?(nil, error as? JudoError)
                         }
                         self.loadingView.actionLabel.text = kRedirecting3DSTitle

            }
            
            if let receiptID = self.pending3DSReceiptID {
                self.loadingView.actionLabel.text = kVerifying3DSPaymentTitle
                self.loadingView.startAnimating()
                self.title = kAuthenticationTitle
                self.pending3DSTransaction?.threeDSecure(results, receiptID: receiptID, block: { (resp, error) -> () in

                        self.paymentEnabled(false)
                    } else {
                        self.completionBlock?(nil, error)
                        self.loadingView.stopAnimating()
                    }
                } else if let response = response {
                    self.completionBlock?(response, nil)
                    self.loadingView.stopAnimating()
                }
            })
            
        } catch let error as JudoError {
