             
             /// Check receipt contains correct bundle and product id for app
             guard self.isAppBundleIDMatching(withReceipt: receipt) && self.isTransactionProductIDMatching(withReceipt: receipt) else {
-                DispatchQueue.main.async {
-                    handler(false, nil, nil)
-                }
-                
+                requestFailHandler(handler)
                 return
             }
             

            }
            catch let error as NSError {
                print(validationErrorString + urlRequestString + error.localizedDescription)
                DispatchQueue.main.async {
                    handler(false, nil, nil)
                }
                
                return
            }
            
            /// Parse json
            guard let parseJSON = json else {
                print(validationErrorString + urlRequestString + "JSON parse error")
                DispatchQueue.main.async {
                    handler(false, nil, nil)
                }
                
                return
            }
            
            /// Check for receipt status in json
            guard let status = parseJSON[SwiftyReceiptValidatorResponseKey.status.rawValue] as? Int else {
                print(validationErrorString + urlRequestString + "Receipt status not found in json response")
                DispatchQueue.main.async {
                    handler(false, nil, nil)
                }
                
                return
            }
            

            /// Check receipt send for verification exists in json response
            guard let receipt = parseJSON[SwiftyReceiptValidatorResponseKey.receipt.rawValue] else {
                print(validationErrorString + urlRequestString + "Could not find receipt send for validation in json reponse")
                requestFailHandler(handler)
                return
            }
            
