fix(core): reduce default API timeout to 60s and enable retries for undici timeouts (#26191)

This commit is contained in:
Adib234
2026-04-29 16:05:45 -04:00
committed by GitHub
parent 25f422d0e4
commit 99235fc59d
4 changed files with 33 additions and 9 deletions
+10 -8
View File
@@ -28,14 +28,15 @@ export class PrivateIpError extends Error {
}
}
let defaultTimeout = 300000; // 5 minutes
let defaultHeadersTimeout = 60000; // 60 seconds
const defaultBodyTimeout = 300000; // 5 minutes
let currentProxy: string | undefined = undefined;
// Configure default global dispatcher with higher timeouts
setGlobalDispatcher(
new Agent({
headersTimeout: defaultTimeout,
bodyTimeout: defaultTimeout,
headersTimeout: defaultHeadersTimeout,
bodyTimeout: defaultBodyTimeout,
}),
);
@@ -45,14 +46,15 @@ export function updateGlobalFetchTimeouts(timeoutMs: number) {
`Invalid timeout value: ${timeoutMs}. Must be a positive finite number.`,
);
}
defaultTimeout = timeoutMs;
defaultHeadersTimeout = timeoutMs;
// We keep body timeout high for LLM streaming responses
if (currentProxy) {
setGlobalProxy(currentProxy);
} else {
setGlobalDispatcher(
new Agent({
headersTimeout: defaultTimeout,
bodyTimeout: defaultTimeout,
headersTimeout: defaultHeadersTimeout,
bodyTimeout: defaultBodyTimeout,
}),
);
}
@@ -214,8 +216,8 @@ export function setGlobalProxy(proxy: string) {
setGlobalDispatcher(
new ProxyAgent({
uri: proxy,
headersTimeout: defaultTimeout,
bodyTimeout: defaultTimeout,
headersTimeout: defaultHeadersTimeout,
bodyTimeout: defaultBodyTimeout,
}),
);
}