From 7632efda8845971f83da6f4f40ffae5c422e2665 Mon Sep 17 00:00:00 2001 From: icarus Date: Thu, 18 Sep 2025 20:40:30 +0800 Subject: [PATCH] fix(api): handle ZodError in processError and formatErrorMessage Add explicit handling of ZodError in processError to return the error directly and in formatErrorMessage to use formatZodError for better error reporting --- src/renderer/src/api/agent.ts | 3 +++ src/renderer/src/utils/error.ts | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/api/agent.ts b/src/renderer/src/api/agent.ts index e9e6b14971..06820321fe 100644 --- a/src/renderer/src/api/agent.ts +++ b/src/renderer/src/api/agent.ts @@ -16,6 +16,7 @@ import { UpdateAgentResponseSchema } from '@types' import { Axios, AxiosRequestConfig, isAxiosError } from 'axios' +import { ZodError } from 'zod' type ApiVersion = 'v1' @@ -29,6 +30,8 @@ const processError = (error: unknown, fallbackMessage: string) => { if (result.success) { return new Error(formatAgentServerError(result.data), { cause: error }) } + } else if (error instanceof ZodError) { + return error } return new Error(fallbackMessage, { cause: error }) } diff --git a/src/renderer/src/utils/error.ts b/src/renderer/src/utils/error.ts index d24fc6920a..ea8be21dc1 100644 --- a/src/renderer/src/utils/error.ts +++ b/src/renderer/src/utils/error.ts @@ -9,7 +9,7 @@ import { } from '@renderer/types/error' import { InvalidToolInputError, NoSuchToolError } from 'ai' import { t } from 'i18next' -import { z } from 'zod' +import { z, ZodError } from 'zod' import { parseJSON } from './json' import { safeSerialize } from './serialize' @@ -44,6 +44,9 @@ export function getErrorDetails(err: any, seen = new WeakSet()): any { } export function formatErrorMessage(error: unknown): string { + if (error instanceof ZodError) { + return formatZodError(error) + } const detailedError = getErrorDetails(error) delete detailedError?.headers delete detailedError?.stack