diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/__tests__/parse-gmail-message-list-fetch-error.spec.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/__tests__/parse-gmail-message-list-fetch-error.spec.ts index 43ce3418f2..1d5df5f157 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/__tests__/parse-gmail-message-list-fetch-error.spec.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/__tests__/parse-gmail-message-list-fetch-error.spec.ts @@ -1,3 +1,5 @@ +import { GaxiosError } from 'gaxios'; + import { MessageImportDriverException, MessageImportDriverExceptionCode, @@ -122,6 +124,27 @@ describe('parseGmailApiError', () => { ); }); + it('should handle 500 OAuth internal_failure error', () => { + const error = new GaxiosError( + 'internal_failure', + { url: 'https://oauth2.googleapis.com/token' }, + { + status: 500, + statusText: 'Internal Server Error', + data: { error: 'internal_failure' }, + headers: {}, + config: { url: 'https://oauth2.googleapis.com/token' }, + request: { responseURL: 'https://oauth2.googleapis.com/token' }, + }, + ); + const exception = parseGmailApiError(error); + + expect(exception).toBeInstanceOf(MessageImportDriverException); + expect(exception.code).toBe( + MessageImportDriverExceptionCode.TEMPORARY_ERROR, + ); + }); + it('should handle 400 Bad Request with errorCodeAsString', () => { const error = getGmailApiError({ code: 400, reason: 'badRequest' }); const exception = parseGmailApiError(error); diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-api-error.util.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-api-error.util.ts index 2f11749e31..3d153cd9a2 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-api-error.util.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-api-error.util.ts @@ -116,6 +116,13 @@ export const parseGmailApiError = ( MessageImportDriverExceptionCode.TEMPORARY_ERROR, ); } + + if (gmailApiError.reason === 'internal_failure') { + return new MessageImportDriverException( + `${gmailApiError.code} - ${gmailApiError.message}`, + MessageImportDriverExceptionCode.TEMPORARY_ERROR, + ); + } break; default: