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.