diff --git a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
index 342c87f..4102bd2 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());
-    $job = $job_item->getJob();
+    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');
+    }
+    else {
+      $job = $job_item->getJob();
 
-    $data = $job_item->getData();
-    $this->doSaveTranslations($entity, $data, $job->getTargetLangcode());
-    $job_item->accepted();
+      $data = $job_item->getData();
+      $this->doSaveTranslations($entity, $data, $job->getTargetLangcode());
+      $job_item->accepted();
+    }
   }
 
   /**
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/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php b/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php
index dd390d7..7919f7b 100644
--- a/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php
+++ b/sources/tmgmt_config/src/Plugin/tmgmt/Source/ConfigSource.php
@@ -148,15 +148,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,6 +201,16 @@ class ConfigSource extends SourcePluginBase implements ContainerFactoryPluginInt
    * {@inheritdoc}
    */
   public function saveTranslation(JobItemInterface $job_item) {
+    try {
+      $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;
+    }
     $config_mapper = $this->getMapper($job_item);
 
     $data = $job_item->getData();
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())));
   }
 
   /**
