From 98e2fcff63660c158bafb9a1b5584c1439d7a533 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 23 Jul 2025 13:50:40 +0200 Subject: [PATCH] fix: Preserve PARTIAL_SUCCESS status when document timeout hits (#1975) * Initial plan * Initial investigation: analyze ReadingOrderModel timeout issue Co-authored-by: cau-git <60343111+cau-git@users.noreply.github.com> * Complete timeout fix validation with tests and documentation Co-authored-by: cau-git <60343111+cau-git@users.noreply.github.com> * Fix timeout status preservation issue by extending _determine_status method Co-authored-by: cau-git <60343111+cau-git@users.noreply.github.com> * Fix the PARTIAL_SUCCESS case in _determine_status properly Signed-off-by: Christoph Auer --------- Signed-off-by: Christoph Auer Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cau-git <60343111+cau-git@users.noreply.github.com> Co-authored-by: Christoph Auer --- docling/pipeline/base_pipeline.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docling/pipeline/base_pipeline.py b/docling/pipeline/base_pipeline.py index 2b168101..6944a355 100644 --- a/docling/pipeline/base_pipeline.py +++ b/docling/pipeline/base_pipeline.py @@ -217,7 +217,13 @@ class PaginatedPipeline(BasePipeline): # TODO this is a bad name. return conv_res def _determine_status(self, conv_res: ConversionResult) -> ConversionStatus: - status = ConversionStatus.SUCCESS + status = conv_res.status + if status in [ + ConversionStatus.PENDING, + ConversionStatus.STARTED, + ]: # preserves ConversionStatus.PARTIAL_SUCCESS + status = ConversionStatus.SUCCESS + for page in conv_res.pages: if page._backend is None or not page._backend.is_valid(): conv_res.errors.append(