-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Description
Bug Description
We are syncing email and calendar from google using Twenty. The email we are using is quite old so it has a lot of contacts. However after ~24 hours, our sync fails. We do see logs saying Token has been expired or revoked. How can we mitigate this?
Logs:
[Nest] 34 - 02/17/2026, 10:12:00 PM ERROR [GmailGetAllFoldersService] Connected account 84a2e98a-fa48-44ba-b36b-0b53b6ddbad7: Error fetching labels: invalid_grant
[Nest] 34 - 02/17/2026, 10:12:00 PM ERROR [GmailFoldersErrorHandlerService] Gmail: Error fetching folders: {"response":{"config":{"method":"POST","url":"https://oauth2.googleapis.com/token","data":"refresh_token=[REDACTED]&client_id=[REDACTED].apps.googleusercontent.com&client_secret=[REDACTED]&grant_type=refresh_token","headers":{"Content-Type":"application/x-www-form-urlencoded","User-Agent":"google-api-nodejs-client/8.9.0","x-goog-api-client":"gl-node/24.12.0","Accept":"application/json"},"body":"refresh_token=[REDACTED]&client_id=[REDACTED].apps.googleusercontent.com&client_secret=[REDACTED]&grant_type=refresh_token","responseType":"json"},"data":{"error":"invalid_grant","error_description":"Token has been expired or revoked."},"headers":{"alt-svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","cache-control":"no-cache, no-store, max-age=0, must-revalidate","content-encoding":"gzip","content-type":"application/json; charset=utf-8","date":"Tue, 17 Feb 2026 22:12:00 GMT","expires":"Mon, 01 Jan 1990 00:00:00 GMT","pragma":"no-cache","server":"scaffolding on HTTPServer2","transfer-encoding":"chunked","vary":"Origin, X-Origin, Referer","x-content-type-options":"nosniff","x-frame-options":"SAMEORIGIN","x-xss-protection":"0"},"status":400,"statusText":"Bad Request","request":{"responseURL":"https://oauth2.googleapis.com/token"}},"config":{"method":"POST","url":"https://oauth2.googleapis.com/token","data":"refresh_token=[REDACTED]&client_id=[REDACTED].apps.googleusercontent.com&client_secret=[REDACTED]&grant_type=refresh_token","headers":{"Content-Type":"application/x-www-form-urlencoded","User-Agent":"google-api-nodejs-client/8.9.0","x-goog-api-client":"gl-node/24.12.0","Accept":"application/json"},"body":"refresh_token=[REDACTED]&client_id=[REDACTED].apps.googleusercontent.com&client_secret=[REDACTED]&grant_type=refresh_token","responseType":"json"},"code":"400"}, constructor: GaxiosError
[Nest] 34 - 02/17/2026, 10:12:00 PM ERROR [GmailGetAllFoldersService] Failed to get Gmail folders for account test@example.com:
[Nest] 34 - 02/17/2026, 10:12:00 PM ERROR [GmailGetAllFoldersService] MessageImportDriverException: Token has been expired or revoked.
at parseGmailApiError (/app/packages/twenty-server/dist/modules/messaging/message-import-manager/drivers/gmail/utils/parse-gmail-api-error.util.js:21:24)
at GmailFoldersErrorHandlerService.handleError (/app/packages/twenty-server/dist/modules/messaging/message-folder-manager/drivers/gmail/services/gmail-folders-error-handler.service.js:34:66)
at /app/packages/twenty-server/dist/modules/messaging/message-folder-manager/drivers/gmail/services/gmail-get-all-folders.service.js:40:54
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async GmailGetAllFoldersService.getAllMessageFolders (/app/packages/twenty-server/dist/modules/messaging/message-folder-manager/drivers/gmail/services/gmail-get-all-folders.service.js:36:30)
at async SyncMessageFoldersService.syncMessageFolders (/app/packages/twenty-server/dist/modules/messaging/message-folder-manager/services/sync-message-folders.service.js:34:35)
at async /app/packages/twenty-server/dist/modules/messaging/message-import-manager/services/messaging-message-list-fetch.service.js:91:40
at async MessagingMessageListFetchService.processMessageListFetch (/app/packages/twenty-server/dist/modules/messaging/message-import-manager/services/messaging-message-list-fetch.service.js:56:9)
at async /app/packages/twenty-server/dist/modules/messaging/message-import-manager/jobs/messaging-message-list-fetch.job.js:76:17
at async MessagingMessageListFetchJob.handle (/app/packages/twenty-server/dist/modules/messaging/message-import-manager/jobs/messaging-message-list-fetch.job.js:41:9) {
code: 'INSUFFICIENT_PERMISSIONS',
cause: undefined,
context: undefined
}
Expected behavior
Email to be synced as expected
Twenty Version
We are using version v1.15.0
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
β
Done