From 6b96269f532231b82711ea00d8a58fcc3457e4a6 Mon Sep 17 00:00:00 2001 From: Matthias Blankertz Date: Mon, 22 Dec 2025 12:24:07 +0100 Subject: [PATCH] fix: webserver: Catch and report IO errors on upload Signed-off-by: Matthias Blankertz --- software/src/webserver.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/software/src/webserver.py b/software/src/webserver.py index 78803f3..474ef18 100644 --- a/software/src/webserver.py +++ b/software/src/webserver.py @@ -219,11 +219,17 @@ async def audiofile_upload(request): data = array('b', range(4096)) bytes_copied = 0 while True: - bytes_read = await request.stream.readinto(data) + try: + bytes_read = await request.stream.readinto(data) + except OSError as ex: + return f'read error: {ex}', 500 if bytes_read == 0: # End of body break - bytes_written = newfile.write(data[:bytes_read]) + try: + bytes_written = newfile.write(data[:bytes_read]) + except OSError as ex: + return f'write error: {ex}', 500 if bytes_written != bytes_read: # short writes shouldn't happen return 'write failure', 500