diff --git a/lib/classes/CronjobScheduler.class.php b/lib/classes/CronjobScheduler.class.php
index 67db94c6d4d7eabb9e0d5bd4d3df1a9bcb952959..49f453238562bf3ef8f1809ea2566749de0dd0e6 100644
--- a/lib/classes/CronjobScheduler.class.php
+++ b/lib/classes/CronjobScheduler.class.php
@@ -267,20 +267,19 @@ class CronjobScheduler
         }
 
         foreach ($schedules as $schedule) {
+            $log = new CronjobLog();
+            $log->schedule_id = $schedule->schedule_id;
+            $log->scheduled   = $schedule->next_execution;
+            $log->executed    = time();
+            $log->exception   = null;
+            $log->duration    = -1;
+
             try {
                 // Skip schedules with missing task classes
                 if (!$schedule->task->valid) {
                     throw new Exception(_('Die Klasse für den Cronjob-Task konnte nicht gefunden werden'));
                 }
 
-                $log = new CronjobLog();
-                $log->schedule_id = $schedule->schedule_id;
-                $log->scheduled   = $schedule->next_execution;
-                $log->executed    = time();
-                $log->exception   = null;
-                $log->duration    = -1;
-                $log->store();
-
                 // Start capturing output and measuring duration
                 ob_start();
                 $start_time = microtime(true);
@@ -297,6 +296,7 @@ class CronjobScheduler
                 $log->store();
             } catch (Exception $e) {
                 $log->exception = $e;
+                $log->store();
 
                 // Deactivate schedule
                 $schedule->deactivate();