diff --git a/database.go b/database.go
index b86b5dcd7b8c93ed81a97256c9680a637b4a9953..155a2444ad8f3f3b899b9724f8ad8cf8c06bdce0 100644
--- a/database.go
+++ b/database.go
@@ -142,12 +142,25 @@ func update(job *JobPersistence, db *gorm.DB) error {
 				Info("Stats runCount is 0, skipping update")
 			}
 
-			if err := tx.Model(job.Stats).
-				Select("*").
+			// if jobs.Stats not exists in database
+			// create new record
+			// else update existing record
+			var stats JobStats
+			tx.Model(job.Stats).Where("job_id = ?", job.ID).
+				Assign(job.Stats).
 				Omit("job_id", "created_at").
-				Updates(job.Stats).Error; err != nil {
-				return err // Fehler beim Update
-			}
+				FirstOrCreate(&stats)
+
+			//if tx.Error != nil {
+			//	return tx.Error
+			//}
+
+			//if err := tx.Model(job.Stats).
+			//	Select("*").
+			//	Omit("job_id", "created_at").
+			//	Updates(job.Stats).Error; err != nil {
+			//	return err // Fehler beim Update
+			//}
 		}
 
 		for i := range job.Logs {
@@ -156,7 +169,7 @@ func update(job *JobPersistence, db *gorm.DB) error {
 			// no error handling, if it fails, it fails
 		}
 
-		return nil
+		return tx.Error
 	})
 }