From 5973fe24442c4015927ace05dd9afe81ea30e761 Mon Sep 17 00:00:00 2001 From: Jeff Culverhouse Date: Tue, 20 Jan 2026 10:00:27 -0500 Subject: [PATCH] fix: prevent UnboundLocalError when large recordings are skipped Fixed a crash that occurred when recordings >100MB were encountered. The store_recording_in_media function was attempting to return file_name outside the scope where it was defined, causing an UnboundLocalError when get_recorded_file returned None for oversized recordings. This fix moves the return statement inside the if recording: block and adds an explicit return None for the case when recording is skipped. Co-Authored-By: Claude Sonnet 4.5 --- src/amcrest2mqtt/mixins/helpers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amcrest2mqtt/mixins/helpers.py b/src/amcrest2mqtt/mixins/helpers.py index 2b8098c..5705a6d 100644 --- a/src/amcrest2mqtt/mixins/helpers.py +++ b/src/amcrest2mqtt/mixins/helpers.py @@ -290,7 +290,9 @@ class HelpersMixin: self.logger.error(f"failed to save symlink {latest_link} -> {local_file}: {err!r}") pass - return file_name + return file_name + + return None async def cleanup_old_recordings(self: Amcrest2Mqtt) -> None: media_path = self.config["media"].get("path")