From d6c4fb8938927c6376d196aad6be2bf0d501650f Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Thu, 9 Apr 2026 15:11:24 +0200 Subject: [PATCH] Add try/except fallback in _extract_image for vision LLM failures --- .../app/etl_pipeline/etl_pipeline_service.py | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/surfsense_backend/app/etl_pipeline/etl_pipeline_service.py b/surfsense_backend/app/etl_pipeline/etl_pipeline_service.py index 5f1495cdb..56ade32fb 100644 --- a/surfsense_backend/app/etl_pipeline/etl_pipeline_service.py +++ b/surfsense_backend/app/etl_pipeline/etl_pipeline_service.py @@ -57,16 +57,23 @@ class EtlPipelineService: async def _extract_image(self, request: EtlRequest) -> EtlResult: if self._vision_llm: - from app.etl_pipeline.parsers.vision_llm import parse_with_vision_llm + try: + from app.etl_pipeline.parsers.vision_llm import parse_with_vision_llm - content = await parse_with_vision_llm( - request.file_path, request.filename, self._vision_llm - ) - return EtlResult( - markdown_content=content, - etl_service="VISION_LLM", - content_type="image", - ) + content = await parse_with_vision_llm( + request.file_path, request.filename, self._vision_llm + ) + return EtlResult( + markdown_content=content, + etl_service="VISION_LLM", + content_type="image", + ) + except Exception: + logging.warning( + "Vision LLM failed for %s, falling back to document parser", + request.filename, + exc_info=True, + ) logging.info( "No vision LLM provided, falling back to document parser for %s",