microsoftgraph / msgraph-sdk-javascript

Microsoft Graph client library for JavaScript
https://graph.microsoft.com
MIT License
756 stars 230 forks source link

Retry handler should retry on connect timeout #330

Open Sytten opened 4 years ago

Sytten commented 4 years ago

Feature Request

Is your feature request related to a problem? Please describe

Currently the retry handler only rethrows when the underlining request throws: https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/130f3c0e9d329498ef8444d86181255b640d5743/src/middleware/RetryHandler.ts#L176-L189

This means that a connect timeout will not be retried. This happened in production for us the other day.

{ statusCode: -1, code: "FetchError", message: "request to https://graph.microsoft.com/v1.0/me/mailboxSettings failed, reason: connect ETIMEDOUT 40.126.6.114:443", requestId: null, date: {}, body: "FetchError: request to https://graph.microsoft.com/v1.0/me/mailboxSettings failed, reason: connect ETIMEDOUT 40.126.6.114:443" } 

Describe the solution you'd like

The retry middleware should catch the connection timeout and retry.

AB#6270

melya commented 6 months ago

The world is imperfect, and so is the network. A retry mechanism should be implemented for failed requests due to network issues. Any updates on this?

I've been facing this issue more frequently lately