diff --git a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
index 342c87f..c8b389f 100644
--- a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
+++ b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
@@ -170,11 +170,19 @@ class ContentEntitySource extends SourcePluginBase {
   public function saveTranslation(JobItemInterface $job_item) {
     /* @var \Drupal\Core\Entity\ContentEntityInterface $entity */
     $entity = entity_load($job_item->getItemType(), $job_item->getItemId());
+    if (!$entity) {
+      $job_item->addMessage('The entity %id of type %type does not exist, the job can not be completed.', array(
+        '%id' => $job_item->getItemId(),
+        '%type' => $job_item->getItemType(),
+      ), 'error');
+      return FALSE;
+    }
     $job = $job_item->getJob();
 
     $data = $job_item->getData();
     $this->doSaveTranslations($entity, $data, $job->getTargetLangcode());
     $job_item->accepted();
+    return TRUE;
   }
 
   /**
diff --git a/sources/content/src/Tests/ContentEntitySourceUiTest.php b/sources/content/src/Tests/ContentEntitySourceUiTest.php
index 15fe4be..54ef97c 100644
--- a/sources/content/src/Tests/ContentEntitySourceUiTest.php
+++ b/sources/content/src/Tests/ContentEntitySourceUiTest.php
@@ -169,6 +169,21 @@ class ContentEntitySourceUiTest extends EntityTestBase {
     $this->assertText($node->getTitle());
     $this->assertNoText($node_german->getTitle());
     $this->assertText($node_not_translated->getTitle());
+
+    // Test that a job can not be accepted if the entity does not exist.
+    $deleted_node = $this->createNode('page', 'en');
+    $this->drupalGet('node/' . $deleted_node->id() . '/translations');
+    $edit = array(
+      'languages[de]' => TRUE,
+    );
+    $this->drupalPostForm(NULL, $edit, t('Request translation'));
+    $this->drupalPostForm(NULL, array(), t('Submit to translator'));
+    $this->clickLink(t('Needs review'));
+
+    // Delete the node and assert that the job can not be accepted.
+    $deleted_node->delete();
+    $this->drupalPostForm(NULL, array(), t('Save as completed'));
+    $this->assertText(t('@id of type @type does not exist, the job can not be completed.', array('@id' => $deleted_node->id(), '@type' => $deleted_node->getEntityTypeId())));
   }
 
   /**
diff --git a/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php b/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php
index cf91cdf..3efd175 100644
--- a/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php
+++ b/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php
@@ -224,8 +224,10 @@ class LocaleSource extends SourcePluginBase {
       // @todo: Send error message to user if update fails.
       if ($this->updateTranslation($job_item->getItemId(), $job->getTargetLangcode(), $translation)) {
         $job_item->accepted();
+        return TRUE;
       }
     }
+    return FALSE;
   }
 
   /**
diff --git a/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php b/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php
index dd390d7..ba245dc 100644
--- a/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php
+++ b/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php
@@ -10,6 +10,7 @@ namespace Drupal\tmgmt_config\Plugin\tmgmt\Source;
 use Drupal\config_translation\ConfigMapperManagerInterface;
 use Drupal\config_translation\Form\ConfigTranslationFormBase;
 use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Config\Entity\ConfigEntityTypeInterface;
 use Drupal\Core\Config\Schema\Mapping;
 use Drupal\Core\Config\Schema\Sequence;
 use Drupal\Core\Config\TypedConfigManagerInterface;
@@ -124,8 +125,8 @@ class ConfigSource extends SourcePluginBase implements ContainerFactoryPluginInt
     else {
       $config_mapper = $this->configMapperManager->createInstance($job_item->getItemType());
 
+      /** @var \Drupal\Core\Config\Entity\ConfigEntityTypeInterface $entity_type */
       $entity_type = $this->entityManager->getDefinition($job_item->getItemType());
-      $entity_type->getConfigPrefix();
 
       $pos = strpos($job_item->getItemId(), $entity_type->getConfigPrefix());
       if (($pos !== false)) {
@@ -148,15 +149,31 @@ class ConfigSource extends SourcePluginBase implements ContainerFactoryPluginInt
    * {@inheritdoc}
    */
   public function getLabel(JobItemInterface $job_item) {
-    return $this->getMapper($job_item)->getTitle();
+    try {
+      return $this->getMapper($job_item)->getTitle();
+    }
+    catch (TMGMTException $e) {
+      drupal_set_message(t('Title can not be displayed, the entity does not exist: %error.', array(
+        '%error' => $e->getMessage(),
+      )), 'error');
+    }
+    return NULL;
   }
 
   /**
    * {@inheritdoc}
    */
   public function getUrl(JobItemInterface $job_item) {
-    $config_mapper = $this->getMapper($job_item);
-    return Url::fromRoute($config_mapper->getBaseRouteName(), $config_mapper->getBaseRouteParameters());
+    try {
+      $config_mapper = $this->getMapper($job_item);
+      return Url::fromRoute($config_mapper->getBaseRouteName(), $config_mapper->getBaseRouteParameters());
+    }
+    catch (TMGMTException $e) {
+      drupal_set_message(t('Url can not be displayed, the entity does not exist: %error.', array(
+        '%error' => $e->getMessage(),
+      )), 'error');
+    }
+    return NULL;
   }
 
   /**
@@ -185,7 +202,16 @@ class ConfigSource extends SourcePluginBase implements ContainerFactoryPluginInt
    * {@inheritdoc}
    */
   public function saveTranslation(JobItemInterface $job_item) {
-    $config_mapper = $this->getMapper($job_item);
+    try {
+      $config_mapper = $this->getMapper($job_item);
+    }
+    catch (TMGMTException $e) {
+      $job_item->addMessage('The entity %id of type %type does not exist, the job can not be completed.', array(
+        '%id' => $job_item->getItemId(),
+        '%type' => $job_item->getItemType(),
+      ), 'error');
+      return FALSE;
+    }
 
     $data = $job_item->getData();
 
@@ -215,6 +241,7 @@ class ConfigSource extends SourcePluginBase implements ContainerFactoryPluginInt
         $config_translation->save();
       }
     }
+    return TRUE;
   }
 
   /**
diff --git a/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php b/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php
index e3ceae0..26aa115 100644
--- a/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php
+++ b/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php
@@ -10,6 +10,7 @@ namespace Drupal\tmgmt_config\Tests;
 use Drupal\Core\Url;
 use Drupal\tmgmt\Entity\Translator;
 use Drupal\tmgmt\Tests\EntityTestBase;
+use Drupal\views\Entity\View;
 
 /**
  * Content entity source UI tests.
@@ -238,6 +239,16 @@ class ConfigSourceUiTest extends EntityTestBase {
       }
     }
     $this->assertEqual($counter, 2);
+
+    // Test that a job can not be accepted if the entity does not exist.
+    $this->clickLink(t('Needs review'));
+
+    // Delete the view  and assert that the job can not be accepted.
+    $view_content = View::load('content');
+    $view_content->delete();
+
+    $this->drupalPostForm(NULL, array(), t('Save as completed'));
+    $this->assertText(t('@id of type @type does not exist, the job can not be completed.', array('@id' => $view_content->id(), '@type' => $view_content->getEntityTypeId())));
   }
 
   /**
diff --git a/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php b/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php
index 95d25ae..047c031 100644
--- a/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php
+++ b/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php
@@ -106,6 +106,7 @@ class TestSource extends SourcePluginBase {
     // Set a variable that can be checked later for a given job item.
     \Drupal::state()->set('tmgmt_test_saved_translation_' . $job_item->getItemType() . '_' . $job_item->getItemId(), $job_item->getData());
     $job_item->accepted();
+    return TRUE;
   }
 
   /**
