diff --git a/skyvern/forge/sdk/routes/sdk.py b/skyvern/forge/sdk/routes/sdk.py index 91e18c9a..8e6f54db 100644 --- a/skyvern/forge/sdk/routes/sdk.py +++ b/skyvern/forge/sdk/routes/sdk.py @@ -15,6 +15,7 @@ from skyvern.forge.sdk.schemas.sdk_actions import ( RunSdkActionRequest, RunSdkActionResponse, ) +from skyvern.forge.sdk.schemas.tasks import TaskStatus from skyvern.forge.sdk.services import org_auth_service from skyvern.forge.sdk.workflow.models.workflow import ( WorkflowRequestBody, @@ -204,6 +205,25 @@ async def run_sdk_action( prompt=action.prompt, ) result = xpath_result + await app.DATABASE.update_task( + task_id=task.task_id, + organization_id=organization_id, + status=TaskStatus.completed, + ) + except Exception as e: + await app.DATABASE.update_task( + task_id=task.task_id, + organization_id=organization_id, + status=TaskStatus.failed, + failure_reason=str(e), + ) + LOG.error( + "SDK action failed", + action_type=action.type, + error=str(e), + exc_info=True, + ) + raise finally: skyvern_context.reset()