Skip to content

Commit 430cebe

Browse files
authored
Fix trigger sync (#21264)
- don't look for event ids when trigger type is description - don't try to delete thumbnail whe trigger type is description - pass correct event ID into thumbnail deletion
1 parent af7af33 commit 430cebe

File tree

1 file changed

+30
-23
lines changed

1 file changed

+30
-23
lines changed

frigate/embeddings/embeddings.py

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -498,35 +498,38 @@ def sync_triggers(self) -> None:
498498

499499
if needs_embedding_update:
500500
existing_trigger.save()
501+
continue
501502
else:
502503
# Create new trigger
503504
try:
504-
try:
505-
event: Event = Event.get(Event.id == trigger.data)
506-
except DoesNotExist:
507-
logger.warning(
508-
f"Event ID {trigger.data} for trigger {trigger_name} does not exist."
509-
)
510-
continue
505+
# For thumbnail triggers, validate the event exists
506+
if trigger.type == "thumbnail":
507+
try:
508+
event: Event = Event.get(Event.id == trigger.data)
509+
except DoesNotExist:
510+
logger.warning(
511+
f"Event ID {trigger.data} for trigger {trigger_name} does not exist."
512+
)
513+
continue
511514

512-
# Skip the event if not an object
513-
if event.data.get("type") != "object":
514-
logger.warning(
515-
f"Event ID {trigger.data} for trigger {trigger_name} is not a tracked object."
516-
)
517-
continue
515+
# Skip the event if not an object
516+
if event.data.get("type") != "object":
517+
logger.warning(
518+
f"Event ID {trigger.data} for trigger {trigger_name} is not a tracked object."
519+
)
520+
continue
518521

519-
thumbnail = get_event_thumbnail_bytes(event)
522+
thumbnail = get_event_thumbnail_bytes(event)
520523

521-
if not thumbnail:
522-
logger.warning(
523-
f"Unable to retrieve thumbnail for event ID {trigger.data} for {trigger_name}."
524-
)
525-
continue
524+
if not thumbnail:
525+
logger.warning(
526+
f"Unable to retrieve thumbnail for event ID {trigger.data} for {trigger_name}."
527+
)
528+
continue
526529

527-
self.write_trigger_thumbnail(
528-
camera.name, trigger.data, thumbnail
529-
)
530+
self.write_trigger_thumbnail(
531+
camera.name, trigger.data, thumbnail
532+
)
530533

531534
# Calculate embedding for new trigger
532535
embedding = self._calculate_trigger_embedding(
@@ -557,7 +560,11 @@ def sync_triggers(self) -> None:
557560
Trigger.camera == camera.name, Trigger.name.in_(triggers_to_remove)
558561
).execute()
559562
for trigger_name in triggers_to_remove:
560-
self.remove_trigger_thumbnail(camera.name, trigger_name)
563+
# Only remove thumbnail files for thumbnail triggers
564+
if existing_triggers[trigger_name].type == "thumbnail":
565+
self.remove_trigger_thumbnail(
566+
camera.name, existing_triggers[trigger_name].data
567+
)
561568

562569
def write_trigger_thumbnail(
563570
self, camera: str, event_id: str, thumbnail: bytes

0 commit comments

Comments
 (0)