From 0494b92371f99c723135ba53026ee1e7bc765c04 Mon Sep 17 00:00:00 2001 From: balibabu Date: Fri, 19 Dec 2025 17:44:45 +0800 Subject: [PATCH] Feat: Display error messages from intermediate nodes. #10427 (#12038) ### What problem does this PR solve? Feat: Display error messages from intermediate nodes. #10427 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- web/src/pages/agent/index.tsx | 2 ++ web/src/pages/agent/webhook-sheet/index.tsx | 29 +++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/web/src/pages/agent/index.tsx b/web/src/pages/agent/index.tsx index 02a9fd646..059d642ec 100644 --- a/web/src/pages/agent/index.tsx +++ b/web/src/pages/agent/index.tsx @@ -182,6 +182,7 @@ export default function Agent() { const handleButtonRunClick = useCallback(() => { if (isWebhookMode) { + saveGraph(); showWebhookTestSheet(); } else if (isPipeline) { handleRunPipeline(); @@ -193,6 +194,7 @@ export default function Agent() { handleRunPipeline, isPipeline, isWebhookMode, + saveGraph, showWebhookTestSheet, ]); diff --git a/web/src/pages/agent/webhook-sheet/index.tsx b/web/src/pages/agent/webhook-sheet/index.tsx index bfb5f3997..e25bf04bc 100644 --- a/web/src/pages/agent/webhook-sheet/index.tsx +++ b/web/src/pages/agent/webhook-sheet/index.tsx @@ -10,6 +10,8 @@ import { useFetchWebhookTrace } from '@/hooks/use-agent-request'; import { MessageEventType } from '@/hooks/use-send-message'; import { IModalProps } from '@/interfaces/common'; import { cn } from '@/lib/utils'; +import { upperFirst } from 'lodash'; +import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useParams } from 'umi'; import { BeginId } from '../constant'; @@ -42,6 +44,23 @@ const WebhookSheet = ({ hideModal }: RunSheetProps) => { event.data.component_id !== BeginId, )?.data.outputs; + const statusInfo = useMemo(() => { + if (data?.finished === false) { + return { status: 'running' }; + } + + let errorItem = data?.events.find( + (x) => x.event === 'error' || x.data?.error, + ); + if (errorItem) { + return { + status: 'fail', + message: errorItem.data?.error || errorItem.message, + }; + } + return { status: 'success' }; + }, [data?.events, data?.finished]); + return ( @@ -55,9 +74,15 @@ const WebhookSheet = ({ hideModal }: RunSheetProps) => {
-
- {data?.finished ? 'SUCCESS' : 'RUNNING'} +
+ {upperFirst(statusInfo.status)}
+
{statusInfo?.message}