Catch Email.DoesNotExist in rebuild_email_cache_votes.

The rebuild_email_cache_votes task can be given a non-existent email id. This results in

ERROR 2024-03-18 04:05:05,137 monitor 10636 140149710681920 Failed 'hyperkitty.tasks._rebuild_email_cache_votes' (rebuild_email_cache_votes) - Email matching query does not exist. : Traceback (most recent call last):
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django_q/worker.py", line 97, in worker
    res = f(*task["args"], **task["kwargs"])
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/hyperkitty/tasks.py", line 222, in _rebuild_email_cache_votes
    email = Email.objects.get(id=email_id)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/db/models/query.py", line 650, in get
    raise self.model.DoesNotExist(
hyperkitty.models.email.Email.DoesNotExist: Email matching query does not exist.

We wrap the email = Email.objects.get(id=email_id) in a try, catch the exception and log it.

Merge request reports

Loading