diff --git a/api/audit/models.py b/api/audit/models.py index 379124ea75d4..be26ac3f9ed5 100644 --- a/api/audit/models.py +++ b/api/audit/models.py @@ -116,16 +116,21 @@ def add_created_date(self) -> None: is_now=True, ) def process_environment_update(self): + from environments.models import Environment from environments.tasks import process_environment_update environments_filter = Q() if self.environment_id: environments_filter = Q(id=self.environment_id) - # Use a queryset to perform update to prevent signals being called at this point. - # Since we're re-saving the environment, we don't want to duplicate signals. - self.project.environments.filter(environments_filter).update( - updated_at=self.created_date - ) + environment_ids = self.project.environments.filter( + environments_filter + ).values_list("id", flat=True) + + # Update environment individually to avoid deadlock + for environment_id in environment_ids: + Environment.objects.filter(id=environment_id).update( + updated_at=self.created_date + ) process_environment_update.delay(args=(self.id,))