From 2e0b2f4f36cd6921185823e350ce764a37464f26 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sun, 8 Mar 2026 14:31:51 -0500 Subject: [PATCH] Fix preview retrieval to handle missing previews gracefully --- frigate/api/media.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/frigate/api/media.py b/frigate/api/media.py index 0ea4c487e..ad7a4cde5 100644 --- a/frigate/api/media.py +++ b/frigate/api/media.py @@ -1531,25 +1531,25 @@ def preview_gif( ): if datetime.fromtimestamp(start_ts) < datetime.now().replace(minute=0, second=0): # has preview mp4 - preview: Previews = ( - Previews.select( - Previews.camera, - Previews.path, - Previews.duration, - Previews.start_time, - Previews.end_time, + try: + preview: Previews = ( + Previews.select( + Previews.camera, + Previews.path, + Previews.duration, + Previews.start_time, + Previews.end_time, + ) + .where( + Previews.start_time.between(start_ts, end_ts) + | Previews.end_time.between(start_ts, end_ts) + | ((start_ts > Previews.start_time) & (end_ts < Previews.end_time)) + ) + .where(Previews.camera == camera_name) + .limit(1) + .get() ) - .where( - Previews.start_time.between(start_ts, end_ts) - | Previews.end_time.between(start_ts, end_ts) - | ((start_ts > Previews.start_time) & (end_ts < Previews.end_time)) - ) - .where(Previews.camera == camera_name) - .limit(1) - .get() - ) - - if not preview: + except DoesNotExist: return JSONResponse( content={"success": False, "message": "Preview not found"}, status_code=404,