fix(OpenAI Node): Do not report openai RateLimitErrors to Sentry (no-changelog) (#13637)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2025-03-03 13:48:28 +01:00 committed by GitHub
parent 139b5b378d
commit bd87728215
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 13 deletions

View file

@ -1,3 +1,4 @@
import { OperationalError } from 'n8n-workflow';
import { RateLimitError } from 'openai'; import { RateLimitError } from 'openai';
import { OpenAIError } from 'openai/error'; import { OpenAIError } from 'openai/error';
@ -41,7 +42,9 @@ describe('error-handling', () => {
try { try {
openAiFailedAttemptHandler(error); openAiFailedAttemptHandler(error);
} catch (e) { } 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'); expect(e.message).toBe('OpenAI: Rate limit reached');
} }
}); });

View file

@ -1,3 +1,4 @@
import { OperationalError } from 'n8n-workflow';
import { RateLimitError } from 'openai'; import { RateLimitError } from 'openai';
import { OpenAIError } from 'openai/error'; 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 // If the error is a rate limit error, we want to handle it differently
// because OpenAI has multiple different rate limit errors // because OpenAI has multiple different rate limit errors
const errorCode = error?.code; const errorCode = error?.code;
if (errorCode) { const errorMessage =
const customErrorMessage = getCustomErrorMessage(errorCode); getCustomErrorMessage(errorCode ?? 'rate_limit_exceeded') ?? errorMap.rate_limit_exceeded;
throw new OperationalError(errorMessage, { cause: error });
if (customErrorMessage) {
if (error.error) {
(error.error as { message: string }).message = customErrorMessage;
error.message = customErrorMessage;
}
}
}
throw error;
} }
}; };