diff --git a/skyvern/exceptions.py b/skyvern/exceptions.py index e7e4bd4c..7da9b3f1 100644 --- a/skyvern/exceptions.py +++ b/skyvern/exceptions.py @@ -13,6 +13,11 @@ class SkyvernHTTPException(SkyvernException): super().__init__(message) +class DisabledBlockExecutionError(SkyvernHTTPException): + def __init__(self, message: str | None = None): + super().__init__(message, status_code=status.HTTP_400_BAD_REQUEST) + + class InvalidOpenAIResponseFormat(SkyvernException): def __init__(self, message: str | None = None): super().__init__(f"Invalid response format: {message}") diff --git a/skyvern/forge/sdk/workflow/models/block.py b/skyvern/forge/sdk/workflow/models/block.py index d4a77dc4..038ac805 100644 --- a/skyvern/forge/sdk/workflow/models/block.py +++ b/skyvern/forge/sdk/workflow/models/block.py @@ -22,6 +22,7 @@ from pydantic import BaseModel, Field from skyvern.config import settings from skyvern.exceptions import ( ContextParameterValueNotFound, + DisabledBlockExecutionError, FailedToNavigateToUrl, MissingBrowserStatePage, TaskNotFound, @@ -534,6 +535,7 @@ class CodeBlock(Block): return self.parameters async def execute(self, workflow_run_id: str, **kwargs: dict) -> BlockResult: + raise DisabledBlockExecutionError("CodeBlock is disabled") # get workflow run context workflow_run_context = self.get_workflow_run_context(workflow_run_id)