diff --git a/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php b/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php
index f1c4a055d54933705019fd07c1657e0b0563b886..3a6d5e65a91bab817be6ba0a4284b2a56b42843b 100644
--- a/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php
+++ b/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php
@@ -566,13 +566,16 @@ final class SchedulerModuleController
         $data = $this->taskRepository->getGroupedTasks();
         $registeredClasses = $this->taskService->getAvailableTaskTypes();
 
-        foreach ($data['taskGroupsWithTasks'] as $key => $group) {
-            $group['taskGroupCollapsed'] = (bool)($moduleData->get('task-group-' . ($key ?? 0), false));
-        }
+        $groups = $data['taskGroupsWithTasks'] ?? [];
+        $groups = array_map(
+            static fn (int $key, array $group): array => array_merge($group, ['taskGroupCollapsed' => (bool)($moduleData->get('task-group-' . $key, false))]),
+            array_keys($groups),
+            $groups
+        );
 
         $view->assignMultiple([
-            'groups' => $data['taskGroupsWithTasks'],
-            'groupsWithoutTasks' => $this->getGroupsWithoutTasks($data['taskGroupsWithTasks']),
+            'groups' => $groups,
+            'groupsWithoutTasks' => $this->getGroupsWithoutTasks($groups),
             'now' => $this->context->getAspect('date')->get('timestamp'),
             'errorClasses' => $data['errorClasses'],
             'errorClassesCollapsed' => (bool)($moduleData->get('task-group-missing', false)),