diff --git a/typo3/sysext/linkvalidator/Classes/Linktype/ExternalLinktype.php b/typo3/sysext/linkvalidator/Classes/Linktype/ExternalLinktype.php
index 63be2a578d13a5cc1d54d97a77925cf530664e17..dba7457613f1b585d8bdf05f1c10bbfcc85abb85 100644
--- a/typo3/sysext/linkvalidator/Classes/Linktype/ExternalLinktype.php
+++ b/typo3/sysext/linkvalidator/Classes/Linktype/ExternalLinktype.php
@@ -256,7 +256,7 @@ class ExternalLinktype extends AbstractLinktype
     public function getErrorMessage($errorParams)
     {
         $lang = $this->getLanguageService();
-        $errorType = $errorParams['errorType'];
+        $errorType = $errorParams['errorType'] ?? '';
         switch ($errorType) {
             case self::ERROR_TYPE_HTTP_STATUS_CODE:
                 switch ($errorParams['errno'] ?? 0) {
@@ -271,7 +271,7 @@ class ExternalLinktype extends AbstractLinktype
                         break;
                     default:
                         // fall back to other error messages
-                        $message = $lang->getLL('list.report.error.httpstatuscode.' . $errorParams['errno']);
+                        $message = $lang->getLL('list.report.error.httpstatuscode.' . ($errorParams['errno'] ?? 0));
                         if (!$message) {
                             // fall back to generic error message
                             $message = sprintf($lang->getLL('list.report.externalerror'), $errorType);
@@ -299,7 +299,7 @@ class ExternalLinktype extends AbstractLinktype
             case 'loop':
                 $message = sprintf(
                     $lang->getLL('list.report.redirectloop'),
-                    $errorParams['exception'],
+                    ($errorParams['exception'] ?? ''),
                     ''
                 );
                 break;
@@ -309,11 +309,11 @@ class ExternalLinktype extends AbstractLinktype
                 break;
 
             case 'exception':
-                $message = sprintf($lang->getLL('list.report.httpexception'), $errorParams['exception']);
+                $message = sprintf($lang->getLL('list.report.httpexception'), ($errorParams['exception'] ?? ''));
                 break;
 
             default:
-                $message = sprintf($lang->getLL('list.report.otherhttpcode'), $errorType, $errorParams['exception']);
+                $message = sprintf($lang->getLL('list.report.otherhttpcode'), $errorType, ($errorParams['exception'] ?? ''));
         }
         return $message;
     }
diff --git a/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php b/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php
index f66d1b648411326b08339caf6846122563e0ba8e..ca909f8f11045eccff4cd69ef7032a06f55fc63a 100644
--- a/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php
+++ b/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php
@@ -574,14 +574,14 @@ class LinkValidatorReport
         $variables['link_title'] = $row['link_title'];
         $variables['linktarget'] = $hookObj->getBrokenUrl($row);
         $response = $row['url_response'];
-        if ($response['valid']) {
+        if ($response['valid'] ?? false) {
             $linkMessage = '<span class="text-success">' . htmlspecialchars($languageService->getLL('list.msg.ok')) . '</span>';
         } else {
             $linkMessage = '<span class="text-danger">'
                 . nl2br(
                     // Encode for output
                     htmlspecialchars(
-                        $hookObj->getErrorMessage($response['errorParams']),
+                        $hookObj->getErrorMessage($response['errorParams'] ?? ['errorType' => 'unknown', 'exception' => 'Invalid response']),
                         ENT_QUOTES,
                         'UTF-8',
                         false