From 441905bc13b6c27e4f4ddc1016151c6b49a1ca87 Mon Sep 17 00:00:00 2001 From: Paulo Victor Cordeiro <146781332+pvcordeiro@users.noreply.github.com> Date: Wed, 3 Jun 2026 00:14:10 +0100 Subject: [PATCH] fix: guard AI tidy verdict against non-string LLM output (#1486) The AI document-tidy endpoint parses verdicts from LLM JSON output and calls .lower().strip() directly. If the model returns null or a non-string element, this crashes with AttributeError. Coerce to str so malformed output is treated as 'keep' instead of crashing. --- routes/document_routes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/document_routes.py b/routes/document_routes.py index 282e358..baf84b2 100644 --- a/routes/document_routes.py +++ b/routes/document_routes.py @@ -901,7 +901,7 @@ def setup_document_routes(session_manager, upload_handler=None) -> APIRouter: for i, doc in enumerate(batch): if i >= len(verdicts): break - verdict = verdicts[i].lower().strip() + verdict = str(verdicts[i] or "").lower().strip() if verdict == "junk": doc.tidy_verdict = "junk" db.delete(doc)