Jelajahi Sumber

fix: raise http request node error on httpx.request error (#11954)

Signed-off-by: -LAN- <laipz8200@outlook.com>
-LAN- 4 bulan lalu
induk
melakukan
2c4df108e5

+ 7 - 1
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

+ 2 - 0
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