8cbb1aa71a
# Context We had an error saying "Unknown error importing calendar events for [...]: Access token is undefined or empty. Please provide a valid token. For more help - https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/docs/CustomAuthenticationProvider.md " Reason is that the access token method for microsoft is a bit different than the one from google. And in microsoft case, we want to check the access token in the authProvider in case it fails. Currently it was not catched, so it broke services above that counted on the accesstoken to be valid. That ended in UNKNOWN failure for our calendar event fetch service. # Solution This PR should solve the issue since : 1. forcing the method to break if accesstoken renewal fails 2. logs will help to know what kind of errors will be sent in case we need to tackle this issue again 3. we now throw TEMPORARY error instead of unknown, allowing 3 getClientConfig failure before it is definitive Why so many changes while it should have been simple : The root cause is the `authProvider` from `'@microsoft/microsoft-graph-client'` npm package. It does not throw a custom error, and we cannot catch it on calling `Client.init`. Errors only occurs when the client from ``` const client = this.microsoftOAuth2ClientManagerService.getOAuth2Client(refreshtoken) ``` is used, as in `client.api('/messages').get().catch(err => [...])` So we need to go in every call using the client and catch errors, and rethrow whenver we need as a newly created message type `MessageImportDriverExceptionCode.CLIENT_NOT_AVAILABLE` We discussed 1. and 2. with @bosiraphael already I added 3. to make our system more robust without waiting for more failures # Related Fixes : https://github.com/twentyhq/twenty/issues/12880 --------- Co-authored-by: Charles Bochet <charles@twenty.com>