Fix handling timeouts as a temporary error

This commit is contained in:
Samuel Elliott
2023-01-22 22:59:45 +00:00
parent dce5af6f57
commit 186c34b8fd

View File

@@ -1,4 +1,5 @@
import createDebug from 'debug';
import { AbortError } from 'node-fetch';
import Loop, { LoopResult } from './loop.js';
import { CoralErrorResponse } from '../api/coral-types.js';
import { ErrorResponse } from '../api/util.js';
@@ -32,6 +33,10 @@ export async function handleError(
if (TemporaryErrorSymbol in err && err[TemporaryErrorSymbol]) {
debug('Temporary error, waiting %ds before retrying', loop.update_interval, err);
return LoopResult.OK;
} else if (err instanceof AbortError) {
debug('Request aborted (timeout?), waiting %ds before retrying', loop.update_interval, err);
return LoopResult.OK;
} else if ('code' in err && (err as any).type === 'system' && err.code && err.code in temporary_system_errors) {
const desc = temporary_system_errors[err.code as keyof typeof temporary_system_errors];