From f6a5e9819e9fcfa0c952302cde4802c131afc2b7 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 3 Dec 2025 11:44:08 -0700 Subject: [PATCH] Specifically validate provided end_time for manual events --- frigate/api/event.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/frigate/api/event.py b/frigate/api/event.py index 1f5578fae..98eaf5886 100644 --- a/frigate/api/event.py +++ b/frigate/api/event.py @@ -1652,10 +1652,27 @@ async def end_event(request: Request, event_id: str, body: EventsEndBody): try: event: Event = Event.get(Event.id == event_id) await require_camera_access(event.camera, request=request) + + if body.end_time is not None and body.end_time < event.start_time: + return JSONResponse( + content=( + { + "success": False, + "message": f"end_time ({body.end_time}) cannot be before start_time ({event.start_time}).", + } + ), + status_code=400, + ) + end_time = body.end_time or datetime.datetime.now().timestamp() request.app.event_metadata_updater.publish( (event_id, end_time), EventMetadataTypeEnum.manual_event_end.value ) + except DoesNotExist: + return JSONResponse( + content=({"success": False, "message": f"Event {event_id} not found."}), + status_code=404, + ) except Exception: return JSONResponse( content=(