diff --git a/arkindex_worker/worker/__init__.py b/arkindex_worker/worker/__init__.py
index 810849884bfc9cf9c76909da3e72bca2bcc077df..aab6c9eacaffa1135298257171029aed31593174 100644
--- a/arkindex_worker/worker/__init__.py
+++ b/arkindex_worker/worker/__init__.py
@@ -230,9 +230,7 @@ class ElementsWorker(
                     with contextlib.suppress(Exception):
                         self.update_activity(element.id, ActivityState.Error)
 
-        message = (
-            f"Ran on {count} elements: {count - failed} completed, {failed} failed"
-        )
+        message = f'Ran on {count} element{"s"[:count>1]}: {count - failed} completed, {failed} failed'
         if failed:
             logger.error(message)
             if failed >= count:  # Everything failed!
@@ -508,9 +506,7 @@ class DatasetWorker(BaseWorker, DatasetMixin, TaskMixin):
                 if dataset_artifact:
                     dataset_artifact.unlink(missing_ok=True)
 
-        message = (
-            f"Ran on {count} datasets: {count - failed} completed, {failed} failed"
-        )
+        message = f'Ran on {count} dataset{"s"[:count>1]}: {count - failed} completed, {failed} failed'
         if failed:
             logger.error(message)
             if failed >= count:  # Everything failed!
diff --git a/tests/test_dataset_worker.py b/tests/test_dataset_worker.py
index dbc494c1b8652404b86533ef8f674aee86aed4a5..18cd43e160b42b5be06e12cb965a3f5823968746 100644
--- a/tests/test_dataset_worker.py
+++ b/tests/test_dataset_worker.py
@@ -512,7 +512,7 @@ def test_run_initial_dataset_state_error(
         if generator
         else []
     ) + [
-        (logging.ERROR, "Ran on 1 datasets: 0 completed, 1 failed"),
+        (logging.ERROR, "Ran on 1 dataset: 0 completed, 1 failed"),
     ]
 
 
@@ -577,7 +577,7 @@ def test_run_update_dataset_state_api_error(
         ],
         (
             logging.ERROR,
-            "Ran on 1 datasets: 0 completed, 1 failed",
+            "Ran on 1 dataset: 0 completed, 1 failed",
         ),
     ]
 
@@ -639,7 +639,7 @@ def test_run_download_dataset_artifact_api_error(
         ),
         (
             logging.ERROR,
-            "Ran on 1 datasets: 0 completed, 1 failed",
+            "Ran on 1 dataset: 0 completed, 1 failed",
         ),
     ]
 
@@ -690,7 +690,7 @@ def test_run_no_downloaded_artifact_error(
         ),
         (
             logging.ERROR,
-            "Ran on 1 datasets: 0 completed, 1 failed",
+            "Ran on 1 dataset: 0 completed, 1 failed",
         ),
     ]
 
@@ -793,7 +793,7 @@ def test_run(
         (logging.INFO, "Loaded Worker Fake worker @ 123412 from API"),
         (logging.INFO, "Processing Dataset (dataset_id) (1/1)"),
         *extra_logs,
-        (logging.INFO, "Ran on 1 datasets: 1 completed, 0 failed"),
+        (logging.INFO, "Ran on 1 dataset: 1 completed, 0 failed"),
     ]
 
 
@@ -893,5 +893,5 @@ def test_run_read_only(
         (logging.WARNING, "Running without any extra configuration"),
         (logging.INFO, "Processing Dataset (dataset_id) (1/1)"),
         *extra_logs,
-        (logging.INFO, "Ran on 1 datasets: 1 completed, 0 failed"),
+        (logging.INFO, "Ran on 1 dataset: 1 completed, 0 failed"),
     ]
diff --git a/tests/test_elements_worker/test_worker.py b/tests/test_elements_worker/test_worker.py
index d7482bad28a84da8ca151a1c0b9c8842e1121672..c237b4c787332a9b9ee5c1dd441ca0f95469ac16 100644
--- a/tests/test_elements_worker/test_worker.py
+++ b/tests/test_elements_worker/test_worker.py
@@ -310,7 +310,7 @@ def test_start_activity_error(
         ),
     ]
     assert logger.error.call_args_list == [
-        mocker.call("Ran on 1 elements: 0 completed, 1 failed")
+        mocker.call("Ran on 1 element: 0 completed, 1 failed")
     ]