catching better internal errors from google (#12663)
Small fix to avoid unknown errors into temporary errors
This commit is contained in:
@ -83,6 +83,7 @@ export class GoogleCalendarGetEventsService {
|
||||
private handleError(error: GaxiosError) {
|
||||
this.logger.error(
|
||||
`Error in ${GoogleCalendarGetEventsService.name} - getCalendarEvents`,
|
||||
error.code,
|
||||
error,
|
||||
);
|
||||
if (
|
||||
|
||||
@ -64,7 +64,7 @@ export const parseGoogleCalendarError = (error: {
|
||||
CalendarEventImportDriverExceptionCode.INSUFFICIENT_PERMISSIONS,
|
||||
);
|
||||
case 500:
|
||||
if (reason === 'backendError') {
|
||||
if (reason === 'backendError' || reason === 'internal_failure') {
|
||||
return new CalendarEventImportDriverException(
|
||||
message,
|
||||
CalendarEventImportDriverExceptionCode.TEMPORARY_ERROR,
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
|
||||
import { ExceptionHandlerService } from 'src/engine/core-modules/exception-handler/exception-handler.service';
|
||||
import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager';
|
||||
@ -21,6 +21,9 @@ export enum CalendarEventImportSyncStep {
|
||||
|
||||
@Injectable()
|
||||
export class CalendarEventImportErrorHandlerService {
|
||||
private readonly logger = new Logger(
|
||||
CalendarEventImportErrorHandlerService.name,
|
||||
);
|
||||
constructor(
|
||||
private readonly twentyORMManager: TwentyORMManager,
|
||||
private readonly calendarChannelSyncStatusService: CalendarChannelSyncStatusService,
|
||||
@ -167,11 +170,13 @@ export class CalendarEventImportErrorHandlerService {
|
||||
CalendarEventImportExceptionCode.UNKNOWN,
|
||||
);
|
||||
|
||||
this.logger.log(exception);
|
||||
this.exceptionHandlerService.captureExceptions(
|
||||
[calendarEventImportException],
|
||||
{
|
||||
additionalData: {
|
||||
calendarChannelId: calendarChannel.id,
|
||||
exception,
|
||||
},
|
||||
workspace: {
|
||||
id: workspaceId,
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
|
||||
import { ConnectedAccountProvider } from 'twenty-shared/types';
|
||||
import { assertUnreachable } from 'twenty-shared/utils';
|
||||
@ -22,6 +22,10 @@ export type ConnectedAccountTokens = GoogleTokens | MicrosoftTokens;
|
||||
|
||||
@Injectable()
|
||||
export class ConnectedAccountRefreshTokensService {
|
||||
private readonly logger = new Logger(
|
||||
ConnectedAccountRefreshTokensService.name,
|
||||
);
|
||||
|
||||
constructor(
|
||||
private readonly googleAPIRefreshAccessTokenService: GoogleAPIRefreshAccessTokenService,
|
||||
private readonly microsoftAPIRefreshAccessTokenService: MicrosoftAPIRefreshAccessTokenService,
|
||||
@ -88,8 +92,9 @@ export class ConnectedAccountRefreshTokensService {
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
this.logger.log(error);
|
||||
throw new ConnectedAccountRefreshAccessTokenException(
|
||||
`Error refreshing tokens for connected account ${connectedAccount.id} in workspace ${workspaceId}: ${error.message} ${error?.response?.data?.error_description}`,
|
||||
`Error refreshing tokens for connected account ${connectedAccount.id.slice(0, 7)} in workspace ${workspaceId.slice(0, 7)}: ${error.message} ${error?.response?.data?.error_description}`,
|
||||
ConnectedAccountRefreshAccessTokenExceptionCode.REFRESH_ACCESS_TOKEN_FAILED,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user