From 2c4df108e56a54ff0d8b44e4cabf50273cfc2fae Mon Sep 17 00:00:00 2001 From: -LAN- Date: Sun, 22 Dec 2024 10:41:53 +0800 Subject: [PATCH] fix: raise http request node error on httpx.request error (#11954) Signed-off-by: -LAN- --- api/core/ops/ops_trace_manager.py | 8 +++++++- api/core/workflow/nodes/http_request/executor.py | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/api/core/ops/ops_trace_manager.py b/api/core/ops/ops_trace_manager.py index b7799ce1fb..a04fc6ee78 100644 --- a/api/core/ops/ops_trace_manager.py +++ b/api/core/ops/ops_trace_manager.py @@ -355,7 +355,13 @@ class TraceTask: def conversation_trace(self, **kwargs): return kwargs - def workflow_trace(self, workflow_run: WorkflowRun, conversation_id, user_id): + def workflow_trace(self, workflow_run: WorkflowRun | None, conversation_id, user_id): + if not workflow_run: + raise ValueError("Workflow run not found") + + db.session.merge(workflow_run) + db.sessoin.refresh(workflow_run) + workflow_id = workflow_run.workflow_id tenant_id = workflow_run.tenant_id workflow_run_id = workflow_run.id diff --git a/api/core/workflow/nodes/http_request/executor.py b/api/core/workflow/nodes/http_request/executor.py index 92f190091b..b96402a76a 100644 --- a/api/core/workflow/nodes/http_request/executor.py +++ b/api/core/workflow/nodes/http_request/executor.py @@ -249,6 +249,8 @@ class Executor: # request_args = {k: v for k, v in request_args.items() if v is not None} try: response = getattr(ssrf_proxy, self.method)(**request_args) + except httpx.RequestError as e: + raise HttpRequestNodeError(str(e)) except ssrf_proxy.MaxRetriesExceededError as e: raise HttpRequestNodeError(str(e)) return response