         
         catch let error as NSError {
             print(error.localizedDescription)
-            handler(false)
-            return
+            return handler(false)
         }
         
         // Prepare payload

        // Request url
        guard let requestURL = URL(string: url) else {
            print(validationErrorString + "Request url not found")
            handler(false, nil)
            return
        }
        // Request
        var request = URLRequest(url: requestURL)

        handleReceiptRequest(forURL: RequestURL.appleProduction.rawValue, data: payloadData) { [unowned self] (isSuccess, status) in
            guard !isSuccess else {
                print("Receipt validation passed in production mode, unlocking product(s)")
                return handler(true)
            }
            
            /// Check if failed production request was due to a test receipt
            guard status == ReceiptStatusCode.testReceipt.rawValue else {
                print(validationErrorString + "Status = \(status ?? ReceiptStatusCode.unknown.rawValue)")
                return handler(false)
            }
            
            print(validationErrorString + "Production url used in sandbox mode, trying sandbox url...")
