diff --git a/typo3/sysext/lang/Classes/Controller/LanguageController.php b/typo3/sysext/lang/Classes/Controller/LanguageController.php
index 37c916d57b3e6e4c78d16358b964b980a314889d..e5e3ee427c3c3511a211cd78a963031871cb3d6f 100644
--- a/typo3/sysext/lang/Classes/Controller/LanguageController.php
+++ b/typo3/sysext/lang/Classes/Controller/LanguageController.php
@@ -166,7 +166,7 @@ class LanguageController extends ActionController
                 $result = $this->translationService->updateTranslation($extensionKey, $data['locale']);
                 $progress = round((($offset + 1) * 100) / $allCount, 2);
                 $response['result'][$data['locale']][$extensionKey] = $result[$data['locale']];
-                if (empty($result[$extensionKey][$data['locale']]['error'])) {
+                if (empty($result[$data['locale']]['error'])) {
                     $response['success'] = true;
                 } else {
                     // Could not update an extension, stop here!
diff --git a/typo3/sysext/lang/Classes/Service/TranslationService.php b/typo3/sysext/lang/Classes/Service/TranslationService.php
index 325bd14eec16bd5b36222b18eef1a846a550b9fe..41dc1a0f23700322858f7ab7045208d892b4fb23 100644
--- a/typo3/sysext/lang/Classes/Service/TranslationService.php
+++ b/typo3/sysext/lang/Classes/Service/TranslationService.php
@@ -17,6 +17,7 @@ namespace TYPO3\CMS\Lang\Service;
 use TYPO3\CMS\Core\SingletonInterface;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\SignalSlot\Dispatcher;
+use TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException;
 use TYPO3\CMS\Extensionmanager\Utility\Repository\Helper;
 
 /**
@@ -70,7 +71,11 @@ class TranslationService implements SingletonInterface
      */
     public function injectRepositoryHelper(Helper $helper)
     {
-        $this->mirrorUrl = $helper->getMirrors(false)->getMirrorUrl();
+        try {
+            $this->mirrorUrl = $helper->getMirrors(false)->getMirrorUrl();
+        } catch (ExtensionManagerException $e) {
+            $this->mirrorUrl = '';
+        }
     }
 
     /**
@@ -108,15 +113,22 @@ class TranslationService implements SingletonInterface
      * @param string $extensionKey The extension key
      * @param string $locale Locale to update
      * @return int Translation state
+     * @throws \Exception
      */
     protected function updateTranslationForExtension($extensionKey, $locale)
     {
         if (empty($extensionKey) || empty($locale)) {
             return static::TRANSLATION_INVALID;
         }
+
+        $mirrorUrl = $this->getMirrorUrl($extensionKey);
+        if (empty($mirrorUrl)) {
+            throw new \Exception('Not able to fetch languages files due to missing mirror url.', 1461248062);
+        }
+
         $state = static::TRANSLATION_FAILED;
 
-        $updateResult = $this->terService->updateTranslation($extensionKey, $locale, $this->getMirrorUrl($extensionKey));
+        $updateResult = $this->terService->updateTranslation($extensionKey, $locale, $mirrorUrl);
         if ($updateResult === true) {
             $state = static::TRANSLATION_UPDATED;
         }