diff --git a/modules/salesforce_pull/src/QueueHandler.php b/modules/salesforce_pull/src/QueueHandler.php
index b2d3091031f91b358718b84df542a008d82b585a..a0d5727a9c50695f73f5ce6c360ddf3f0ff22e01 100644
--- a/modules/salesforce_pull/src/QueueHandler.php
+++ b/modules/salesforce_pull/src/QueueHandler.php
@@ -98,6 +98,9 @@ class QueueHandler {
 
     // Iterate over each field mapping to determine our query parameters.
     foreach ($this->mappings as $mapping) {
+      if (!$mapping->doesPull()) {
+        continue;
+      }
       $results = $this->doSfoQuery($mapping);
       if ($results) {
         $this->enqueueAllResults($mapping, $results);
@@ -120,9 +123,9 @@ class QueueHandler {
    */
   protected function doSfoQuery(SalesforceMappingInterface $mapping) {
     // @TODO figure out the new way to build the query.
-    $soql = $mapping->getPullQuery();
     // Execute query.
     try {
+      $soql = $mapping->getPullQuery();
       $this->eventDispatcher->dispatch(
         SalesforceEvents::PULL_QUERY,
         new SalesforceQueryEvent($mapping, $soql)
@@ -145,7 +148,14 @@ class QueueHandler {
    */
   public function enqueueAllResults(SalesforceMappingInterface $mapping, SelectQueryResult $results) {
     while (!$this->enqueueResultSet($mapping, $results)) {
-      $results = $this->sfapi->queryMore($results);
+      try {
+        $results = $this->sfapi->queryMore($results);
+      }
+      catch (\Exception $e) {
+        $message = '%type: @message in %function (line %line of %file).';
+        $args = Error::decodeException($e);
+        $this->eventDispatcher->dispatch(SalesforceEvents::ERROR, new SalesforceErrorEvent($e, $message, $args));
+      }
     }
   }