fix: treat Frigate 500 'Could not process' as permanent rejection
Frigate returns HTTP 500 with 'Could not process' when its face detector cannot find or embed a face in the uploaded crop — this will never succeed on retry. Previously these were silently logged at DEBUG and retried on every future run. - Surface 500 error details inline (same display path as 400) - Mark 500 + 'could not process' as a permanent rejection so the asset is skipped on future runs instead of retried indefinitely
This commit is contained in:
+2
-1
@@ -566,13 +566,14 @@ def upload_to_frigate(jobs: list[dict]) -> None:
|
||||
error_detail = resp.json().get("message", full_body[:100])
|
||||
except Exception:
|
||||
error_detail = full_body[:100]
|
||||
if resp.status_code == 400:
|
||||
if resp.status_code in (400, 500):
|
||||
progress.console.print(f" [dim]{error_detail}[/dim]")
|
||||
else:
|
||||
logger.debug("%s HTTP %s: %s", fname, resp.status_code, error_detail)
|
||||
_is_permanent = (
|
||||
(resp.status_code == 400 and "face" in full_body.lower())
|
||||
or resp.status_code == 422
|
||||
or (resp.status_code == 500 and "could not process" in full_body.lower())
|
||||
)
|
||||
if _is_permanent:
|
||||
asset_id = asset_map.get(fname)
|
||||
|
||||
Reference in New Issue
Block a user