diff --git a/typo3/sysext/core/Classes/Domain/Repository/PageRepository.php b/typo3/sysext/core/Classes/Domain/Repository/PageRepository.php
index 11ff729390a2f3238e8f675d2b40860adf38e64f..a66410a8ddc80fc7b3b1f2061920a3bacc5e647b 100644
--- a/typo3/sysext/core/Classes/Domain/Repository/PageRepository.php
+++ b/typo3/sysext/core/Classes/Domain/Repository/PageRepository.php
@@ -1024,20 +1024,20 @@ class PageRepository implements LoggerAwareInterface
             return [];
         }
 
-        $dokType = (int)$page['doktype'];
-        $shortcutMode = (int)$page['shortcut_mode'];
+        $dokType = (int)($page['doktype'] ?? 0);
+        $shortcutMode = (int)($page['shortcut_mode'] ?? 0);
 
-        if ($dokType === self::DOKTYPE_SHORTCUT && ($page['shortcut'] || $shortcutMode)) {
+        if ($dokType === self::DOKTYPE_SHORTCUT && (($shortcut = (int)($page['shortcut'] ?? 0)) || $shortcutMode)) {
             if ($shortcutMode === self::SHORTCUT_MODE_NONE) {
                 // No shortcut_mode set, so target is directly set in $page['shortcut']
                 $searchField = 'uid';
-                $searchUid = (int)$page['shortcut'];
+                $searchUid = $shortcut;
             } elseif ($shortcutMode === self::SHORTCUT_MODE_FIRST_SUBPAGE || $shortcutMode === self::SHORTCUT_MODE_RANDOM_SUBPAGE) {
                 // Check subpages - first subpage or random subpage
                 $searchField = 'pid';
                 // If a shortcut mode is set and no valid page is given to select subpages
                 // from use the actual page.
-                $searchUid = (int)$page['shortcut'] ?: $page['uid'];
+                $searchUid = $shortcut ?: $page['uid'];
             } elseif ($shortcutMode === self::SHORTCUT_MODE_PARENT_PAGE) {
                 // Shortcut to parent page
                 $searchField = 'uid';