Skip to content

Commit 1ec7362

Browse files
committed
Implement a 10-second timeout for streaming API requests and enable retries upon timeout or connection errors
1 parent e7a4ba0 commit 1ec7362

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

‎packages/vscode/src/utils/make-api-request.ts‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,8 @@ export const make_api_request = async (params: {
251251
: {})
252252
},
253253
cancelToken: params.cancellation_token,
254-
responseType: 'stream'
254+
responseType: 'stream',
255+
timeout: 10000
255256
}
256257
)
257258

@@ -355,13 +356,17 @@ export const make_api_request = async (params: {
355356
} catch (error) {
356357
if (
357358
axios.isAxiosError(error) &&
358-
(error.response?.status == 503 || error.code == 'ECONNRESET') &&
359+
(error.response?.status == 503 ||
360+
error.code == 'ECONNRESET' ||
361+
error.code == 'ECONNABORTED') &&
359362
attempt < MAX_RETRIES
360363
) {
361364
const delay = RETRY_DELAYS[attempt]
362365
const reason =
363366
error.response?.status == 503
364367
? 'status 503'
368+
: error.code == 'ECONNABORTED'
369+
? 'a timeout'
365370
: 'a socket hang up (ECONNRESET)'
366371
Logger.warn({
367372
function_name: 'make_api_request',

0 commit comments

Comments
 (0)