From 9891e0221555d0633c94762810859069d8808ed6 Mon Sep 17 00:00:00 2001 From: Simon <10131203+gaomeng1900@users.noreply.github.com> Date: Wed, 3 Jun 2026 23:31:01 +0800 Subject: [PATCH] fix(llms): handle AbortError during .json() --- packages/llms/src/OpenAIClient.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/llms/src/OpenAIClient.ts b/packages/llms/src/OpenAIClient.ts index 57be760..c3b45f9 100644 --- a/packages/llms/src/OpenAIClient.ts +++ b/packages/llms/src/OpenAIClient.ts @@ -79,9 +79,13 @@ export class OpenAIClient implements LLMClient { // 3. Handle HTTP errors if (!response.ok) { - const errorData = await response.json().catch() - const errorMessage = - (errorData as { error?: { message?: string } }).error?.message || response.statusText + let errorData: any + try { + errorData = await response.json() + } catch (error) { + if ((error as any)?.name === 'AbortError') throw error + } + const errorMessage = errorData?.error?.message || response.statusText if (response.status === 401 || response.status === 403) { throw new InvokeError( @@ -116,6 +120,7 @@ export class OpenAIClient implements LLMClient { try { data = await response.json() } catch (error) { + if ((error as any)?.name === 'AbortError') throw error throw new InvokeError( InvokeErrorTypes.INVALID_RESPONSE, 'Response body is not valid JSON',