diff --git a/arkindex_worker/worker/__init__.py b/arkindex_worker/worker/__init__.py
index 98dccc80559e4d40eea7e3d5e5a2769e4171ad9d..aab6c9eacaffa1135298257171029aed31593174 100644
--- a/arkindex_worker/worker/__init__.py
+++ b/arkindex_worker/worker/__init__.py
@@ -230,12 +230,13 @@ class ElementsWorker(
                     with contextlib.suppress(Exception):
                         self.update_activity(element.id, ActivityState.Error)
 
+        message = f'Ran on {count} element{"s"[:count>1]}: {count - failed} completed, {failed} failed'
         if failed:
-            logger.error(
-                f"Ran on {count} elements: {count - failed} completed, {failed} failed"
-            )
+            logger.error(message)
             if failed >= count:  # Everything failed!
                 sys.exit(1)
+        else:
+            logger.info(message)
 
     def process_element(self, element: Element | CachedElement):
         """
@@ -505,9 +506,10 @@ class DatasetWorker(BaseWorker, DatasetMixin, TaskMixin):
                 if dataset_artifact:
                     dataset_artifact.unlink(missing_ok=True)
 
+        message = f'Ran on {count} dataset{"s"[:count>1]}: {count - failed} completed, {failed} failed'
         if failed:
-            logger.error(
-                f"Ran on {count} datasets: {count - failed} completed, {failed} failed"
-            )
+            logger.error(message)
             if failed >= count:  # Everything failed!
                 sys.exit(1)
+        else:
+            logger.info(message)
diff --git a/tests/test_dataset_worker.py b/tests/test_dataset_worker.py
index f4a44ae94956cad033c927a871983ee773132f3c..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",
         ),
     ]
 
@@ -792,7 +792,9 @@ def test_run(
     assert [(level, message) for _, level, message in caplog.record_tuples] == [
         (logging.INFO, "Loaded Worker Fake worker @ 123412 from API"),
         (logging.INFO, "Processing Dataset (dataset_id) (1/1)"),
-    ] + extra_logs
+        *extra_logs,
+        (logging.INFO, "Ran on 1 dataset: 1 completed, 0 failed"),
+    ]
 
 
 @pytest.mark.parametrize(
@@ -890,4 +892,6 @@ def test_run_read_only(
     assert [(level, message) for _, level, message in caplog.record_tuples] == [
         (logging.WARNING, "Running without any extra configuration"),
         (logging.INFO, "Processing Dataset (dataset_id) (1/1)"),
-    ] + extra_logs
+        *extra_logs,
+        (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")
     ]