diff --git a/modules/salesforce_push/salesforce_push.module b/modules/salesforce_push/salesforce_push.module
index 304a116..827803c 100644
--- a/modules/salesforce_push/salesforce_push.module
+++ b/modules/salesforce_push/salesforce_push.module
@@ -138,6 +138,17 @@ function salesforce_push_sync_rest($entity_type, $entity, $mapping, $sf_sync_tri
       // An external key has been specified, attempt an upsert().
       if (!empty($key_field)) {
         $data = $sfapi->objectUpsert($mapping->salesforce_object_type, $key_field, $key_value, $params);
+        // Error handling if no data id is returned, check to see if it was created.
+        if(!isset($data['id'])) {
+          $contact = $sfapi->apiCall("sobjects/{$mapping->salesforce_object_type}/{$key_field}/{$key_value}", 'GET');
+          if(isset($contact['id'])) {
+            $data['id'] = $contact['id'];
+          }
+          else {
+            $data['errorCode'] = '204';
+            $data['message'] = t('Salesforce sync failed.');
+          }
+        }
       }
       // No key or mapping, create a new object in Salesforce.
       else {
