From 9274308859cda09651a2148c3e59c14ed893f616 Mon Sep 17 00:00:00 2001
From: Daniel Bimschas <daniel@bimschas.com>
Date: Wed, 11 Dec 2024 06:57:13 +0100
Subject: [PATCH] HOLI-10718: handle object not found on deletion gracefully

---
 main.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/main.py b/main.py
index 6314fd7..dfbba02 100644
--- a/main.py
+++ b/main.py
@@ -4,6 +4,7 @@ from typing import Union
 
 from dataclasses import asdict
 from cloudevents.http.event import CloudEvent
+from typesense.exceptions import ObjectNotFound
 
 from events import UserNameUpdatedEvent, get_event_type, get_event_version, UserDeletedEvent, SpaceCreatedEvent, \
     SpaceUpdatedEvent, SpaceDeletedEvent
@@ -20,7 +21,10 @@ def process_user_name_updated_event(client: TypesenseClient, event: UserNameUpda
 
 def process_user_deleted_event(client: TypesenseClient, event: UserDeletedEvent):
     logger.debug(f'Processing {event}')
-    client.delete(f"profile_{event.user.id}")
+    try:
+        client.delete(f"profile_{event.user.id}")
+    except ObjectNotFound:
+        pass
     logger.info(f'Deleted user {event.user.id} from Typesense')
 
 def process_space_upserting_event(client: TypesenseClient, event: Union[SpaceCreatedEvent, SpaceUpdatedEvent]):
@@ -30,7 +34,10 @@ def process_space_upserting_event(client: TypesenseClient, event: Union[SpaceCre
 
 def process_space_deleted_event(client: TypesenseClient, event: SpaceDeletedEvent):
     logger.debug(f'Processing {event}')
-    client.delete(f"space_{event.space.id}")
+    try:
+        client.delete(f"space_{event.space.id}")
+    except ObjectNotFound:
+        pass
     logger.info(f'Deleted space {event.space.id} in Typesense')
 
 def process_event(client: TypesenseClient, event: CloudEvent):
-- 
GitLab