improve code block failure reason (#1910)

Co-authored-by: lawyzheng <lawyzheng1106@gmail.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
This commit is contained in:
Shuchang Zheng 2025-03-09 21:50:53 -07:00 committed by GitHub
parent 494e750e91
commit 1f62698350
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 24 additions and 1 deletions

View file

@ -56,6 +56,7 @@ from skyvern.forge.sdk.schemas.task_v2 import TaskV2Status
from skyvern.forge.sdk.schemas.tasks import Task, TaskOutput, TaskStatus
from skyvern.forge.sdk.workflow.context_manager import BlockMetadata, WorkflowRunContext
from skyvern.forge.sdk.workflow.exceptions import (
CustomizedCodeException,
FailedToFormatJinjaStyleParameter,
InsecureCodeDetected,
InvalidEmailClientConfiguration,
@ -1251,7 +1252,19 @@ async def wrapper():
)
user_function = self.generate_async_user_function(self.code, page, parameter_values)
result = await user_function()
try:
result = await user_function()
except Exception as e:
exc = CustomizedCodeException(e)
return await self.build_block_result(
success=False,
failure_reason=exc.message,
output_parameter_value=None,
status=BlockStatus.failed,
workflow_run_block_id=workflow_run_block_id,
organization_id=organization_id,
)
result = json.loads(
json.dumps(result, default=lambda value: f"Object '{type(value)}' is not JSON serializable")
)