diff --git a/arkindex/documents/api/ml.py b/arkindex/documents/api/ml.py
index eb358f66e7dbd3853b8a39b9d3c8e2d273789539..ab87ada1c6076d97a1b9312b2c99739e2d687f62 100644
--- a/arkindex/documents/api/ml.py
+++ b/arkindex/documents/api/ml.py
@@ -192,7 +192,12 @@ class ElementTranscriptionsBulk(CreateAPIView):
     def get_queryset(self):
         if not self.request:
             return Element.objects.none()
-        return Element.objects.filter(corpus__in=Corpus.objects.writable(self.request.user))
+        # Load elements and their zones from the default DB to avoid
+        # a stale read issue when an element is created by a worker
+        # and this endpoint is immediately used after to create transcriptions
+        return Element.objects.filter(
+            corpus__in=Corpus.objects.writable(self.request.user)
+        ).using('default').select_related('zone')
 
     def get_serializer_context(self):
         context = super().get_serializer_context()
diff --git a/arkindex/documents/tests/test_bulk_element_transcriptions.py b/arkindex/documents/tests/test_bulk_element_transcriptions.py
index 22dbc75a724f6ae81f664e9e9e3b666144eece33..33ff67d5319a80fc2ba91e258b85d54ad6fefec5 100644
--- a/arkindex/documents/tests/test_bulk_element_transcriptions.py
+++ b/arkindex/documents/tests/test_bulk_element_transcriptions.py
@@ -122,7 +122,7 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
         self.assertEqual(created_elts.count(), 1)
 
         self.client.force_login(self.internal_user)
-        with self.assertNumQueries(17):
+        with self.assertNumQueries(16):
             response = self.client.post(
                 reverse('api:element-transcriptions-bulk', kwargs={'pk': self.page.id}),
                 format='json',
@@ -166,7 +166,7 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
         }
 
         self.client.force_login(self.internal_user)
-        with self.assertNumQueries(17):
+        with self.assertNumQueries(16):
             response = self.client.post(
                 reverse('api:element-transcriptions-bulk', kwargs={'pk': self.page.id}),
                 format='json',
@@ -286,7 +286,7 @@ class TestBulkElementTranscriptions(FixtureAPITestCase):
         }
 
         self.client.force_login(self.internal_user)
-        with self.assertNumQueries(17):
+        with self.assertNumQueries(16):
             response = self.client.post(
                 reverse('api:element-transcriptions-bulk', kwargs={'pk': self.page.id}),
                 format='json',