diff --git salesforce/modules/salesforce_push/salesforce_push.module salesforce/modules/salesforce_push/salesforce_push.module
index 482d9b1..28fa80e 100644
--- salesforce/modules/salesforce_push/salesforce_push.module
+++ salesforce/modules/salesforce_push/salesforce_push.module
@@ -146,6 +146,7 @@ function salesforce_push_sync_rest($entity_type, $entity, $mapping, $sf_sync_tri
     catch(SalesforceException $e) {
       watchdog_exception('salesforce_push', $e);
       salesforce_set_message($e->getMessage(), 'error');
+      module_invoke_all('salesforce_push_failure', $entity_type, $entity, $mapping, $params, $e->getMessage());
       return;
     }
 
@@ -164,6 +165,7 @@ function salesforce_push_sync_rest($entity_type, $entity, $mapping, $sf_sync_tri
         '@code' => $data['errorCode'],
         '@message' => $data['message'],
       )), 'error');
+      module_invoke_all('salesforce_push_failure', $entity_type, $entity, $mapping, $params, $data['message']);
 
       return;
     }
@@ -186,6 +188,7 @@ function salesforce_push_sync_rest($entity_type, $entity, $mapping, $sf_sync_tri
       salesforce_set_message(t('Error message: "@msg".  The Salesforce link has been removed.', array(
         '@msg' => $e->getMessage(),
       )), 'error');
+      module_invoke_all('salesforce_push_failure', $entity_type, $entity, $mapping, $params, $e->getMessage());
       return;
     }
 
