diff --git a/packages/twenty-server/src/modules/connected-account/refresh-tokens-manager/services/connected-account-refresh-tokens.service.ts b/packages/twenty-server/src/modules/connected-account/refresh-tokens-manager/services/connected-account-refresh-tokens.service.ts index 7f46dd71c..8af298533 100644 --- a/packages/twenty-server/src/modules/connected-account/refresh-tokens-manager/services/connected-account-refresh-tokens.service.ts +++ b/packages/twenty-server/src/modules/connected-account/refresh-tokens-manager/services/connected-account-refresh-tokens.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { assertUnreachable } from 'twenty-shared/utils'; import { ConnectedAccountProvider } from 'twenty-shared/types'; +import { assertUnreachable } from 'twenty-shared/utils'; import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager'; import { @@ -74,11 +74,11 @@ export class ConnectedAccountRefreshTokensService { try { switch (connectedAccount.provider) { case ConnectedAccountProvider.GOOGLE: - return this.googleAPIRefreshAccessTokenService.refreshAccessToken( + return await this.googleAPIRefreshAccessTokenService.refreshAccessToken( refreshToken, ); case ConnectedAccountProvider.MICROSOFT: - return this.microsoftAPIRefreshAccessTokenService.refreshTokens( + return await this.microsoftAPIRefreshAccessTokenService.refreshTokens( refreshToken, ); default: diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-message-list-fetch-error.util.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-message-list-fetch-error.util.ts index 655fa83cf..3ca37819e 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-message-list-fetch-error.util.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-message-list-fetch-error.util.ts @@ -24,6 +24,13 @@ export const parseGmailMessageListFetchError = (error: { ); } if (reason === 'failedPrecondition') { + if (message.includes('Mail service not enabled')) { + return new MessageImportDriverException( + message, + MessageImportDriverExceptionCode.INSUFFICIENT_PERMISSIONS, + ); + } + return new MessageImportDriverException( message, MessageImportDriverExceptionCode.TEMPORARY_ERROR, diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-messages-import-error.util.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-messages-import-error.util.ts index 3da89e84e..2dbc1eeb3 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-messages-import-error.util.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-messages-import-error.util.ts @@ -16,6 +16,7 @@ export const parseGmailMessagesImportError = ( const { code, errors } = error; const reason = errors?.[0]?.reason; + const originalMessage = errors?.[0]?.message; const message = `${errors?.[0]?.message} for message with externalId: ${messageExternalId}`; switch (code) { @@ -27,6 +28,13 @@ export const parseGmailMessagesImportError = ( ); } if (reason === 'failedPrecondition') { + if (originalMessage.includes('Mail service not enabled')) { + return new MessageImportDriverException( + message, + MessageImportDriverExceptionCode.INSUFFICIENT_PERMISSIONS, + ); + } + return new MessageImportDriverException( message, MessageImportDriverExceptionCode.TEMPORARY_ERROR,