From 4315381043eef706b510602df5faeb3aa8e351e6 Mon Sep 17 00:00:00 2001 From: Stanislav Novosad Date: Mon, 19 Jan 2026 16:16:12 -0700 Subject: [PATCH] Handle ScrapingFailed in /v1/sdk/run_action (#4490) --- skyvern/forge/sdk/routes/sdk.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/skyvern/forge/sdk/routes/sdk.py b/skyvern/forge/sdk/routes/sdk.py index 631e9196..8c323988 100644 --- a/skyvern/forge/sdk/routes/sdk.py +++ b/skyvern/forge/sdk/routes/sdk.py @@ -5,6 +5,7 @@ from fastapi import Depends, HTTPException, status from skyvern.core.script_generations.real_skyvern_page_ai import RealSkyvernPageAi from skyvern.core.script_generations.script_skyvern_page import ScriptSkyvernPage +from skyvern.exceptions import ScrapingFailed from skyvern.forge import app from skyvern.forge.sdk.api.files import validate_download_url from skyvern.forge.sdk.core import skyvern_context @@ -225,6 +226,19 @@ async def run_sdk_action( organization_id=organization_id, status=TaskStatus.completed, ) + except ScrapingFailed as e: + await app.DATABASE.update_task( + task_id=task.task_id, + organization_id=organization_id, + status=TaskStatus.failed, + failure_reason=str(e.reason) if e.reason else str(e), + ) + LOG.warning( + "SDK action failed due to scraping error", + action_type=action.type, + error=str(e), + ) + raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=e.reason or str(e)) except Exception as e: await app.DATABASE.update_task( task_id=task.task_id,