diff --git a/api/src/api/routes/job.py b/api/src/api/routes/job.py
index 78c8f5d91bc03107575d1d6e77a2f036948fbc6a..d85b4723ce0fb6c09f792bf72a796d3ad77affc9 100644
--- a/api/src/api/routes/job.py
+++ b/api/src/api/routes/job.py
@@ -133,22 +133,19 @@ def api_route_get_job_status():
         for val in json_request.get_array("job_ids")
     ]
     
-    def _trans(session: SessionDb):
-        limited_jobs = session.scalars(
-            Job.select(api_user_ac(), [])
-            .where(Job.id.in_(job_ids))
-            .options(orm.load_only(Job.id, Job.state, Job.run_start_time, Job.run_end_time))
-        ).all()
-        return {
-            "jobs": {
-                job.id: {
-                    # TODO This is not really using the serialization API
-                    "state": job.state.value,
-                    "run_start_time": None if job.run_start_time is None else format_standard_datetime(job.run_start_time),
-                    "run_end_time": None if job.run_end_time is None else format_standard_datetime(job.run_end_time),
-                }
-                for job in limited_jobs
+    limited_jobs = database.query_all_and_expunge(
+        Job.select(api_user_ac(), [])
+        .where(Job.id.in_(job_ids))
+        .options(orm.load_only(Job.id, Job.state, Job.run_start_time, Job.run_end_time))
+    )
+    return {
+        "jobs": {
+            job.id: {
+                # TODO This is not really using the serialization API
+                "state": job.state.value,
+                "run_start_time": None if job.run_start_time is None else format_standard_datetime(job.run_start_time),
+                "run_end_time": None if job.run_end_time is None else format_standard_datetime(job.run_end_time),
             }
+            for job in limited_jobs
         }
-    
-    return database.execute_read_transaction(_trans)
+    }