diff --git a/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.test.ts b/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.test.ts index 97aee1d943..13fcf0877d 100644 --- a/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.test.ts +++ b/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.test.ts @@ -1,3 +1,4 @@ +import { OperationalError } from 'n8n-workflow'; import { RateLimitError } from 'openai'; import { OpenAIError } from 'openai/error'; @@ -41,7 +42,9 @@ describe('error-handling', () => { try { openAiFailedAttemptHandler(error); } catch (e) { - expect(e).toBe(error); + expect(e).toBeInstanceOf(OperationalError); + expect(e.level).toBe('warning'); + expect(e.cause).toBe(error); expect(e.message).toBe('OpenAI: Rate limit reached'); } }); diff --git a/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.ts b/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.ts index 4fbb140def..011d59a095 100644 --- a/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.ts +++ b/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/helpers/error-handling.ts @@ -1,3 +1,4 @@ +import { OperationalError } from 'n8n-workflow'; import { RateLimitError } from 'openai'; import { OpenAIError } from 'openai/error'; @@ -20,17 +21,8 @@ export const openAiFailedAttemptHandler = (error: any) => { // If the error is a rate limit error, we want to handle it differently // because OpenAI has multiple different rate limit errors const errorCode = error?.code; - if (errorCode) { - const customErrorMessage = getCustomErrorMessage(errorCode); - - if (customErrorMessage) { - if (error.error) { - (error.error as { message: string }).message = customErrorMessage; - error.message = customErrorMessage; - } - } - } - - throw error; + const errorMessage = + getCustomErrorMessage(errorCode ?? 'rate_limit_exceeded') ?? errorMap.rate_limit_exceeded; + throw new OperationalError(errorMessage, { cause: error }); } };