Stale read when creating a transcription on a new element
Sentry Issue: ARKINDEX-BACKEND-2K
KeyError: 'zone'
File "django/db/models/fields/related_descriptors.py", line 173, in __get__
rel_obj = self.field.get_cached_value(instance)
File "django/db/models/fields/mixins.py", line 15, in get_cached_value
return instance._state.fields_cache[cache_name]
Zone.DoesNotExist: Zone matching query does not exist.
(11 additional frame(s) were not displayed)
...
File "rest_framework/serializers.py", line 436, in run_validation
value = self.validate(value)
File "arkindex/documents/serializers/ml.py", line 303, in validate
File "django/db/models/fields/related_descriptors.py", line 187, in __get__
rel_obj = self.get_object(instance)
File "django/db/models/fields/related_descriptors.py", line 154, in get_object
return qs.get(self.field.get_reverse_related_filter(instance))
File "django/db/models/query.py", line 431, in get
self.model._meta.object_name
Creating an element (in a case that causes a new Zone to be created), then immediately creating a transcription on this element might cause a stale read issue in which the zone does not exist yet, although the zone_id
was properly updated on the element.