fix (agents): classify empty-chunk stream failures as timeout

This commit is contained in:
Vignesh Natarajan
2026-02-14 18:53:50 -08:00
parent 79aaab403c
commit eb846c95bf

View File

@@ -480,6 +480,10 @@ export function formatAssistantErrorText(
return transientCopy; return transientCopy;
} }
if (isTimeoutErrorMessage(raw)) {
return "LLM request timed out.";
}
if (isBillingErrorMessage(raw)) { if (isBillingErrorMessage(raw)) {
return formatBillingErrorMessage(opts?.provider); return formatBillingErrorMessage(opts?.provider);
} }
@@ -568,7 +572,13 @@ const ERROR_PATTERNS = {
"usage limit", "usage limit",
], ],
overloaded: [/overloaded_error|"type"\s*:\s*"overloaded_error"/i, "overloaded"], overloaded: [/overloaded_error|"type"\s*:\s*"overloaded_error"/i, "overloaded"],
timeout: ["timeout", "timed out", "deadline exceeded", "context deadline exceeded"], timeout: [
"timeout",
"timed out",
"deadline exceeded",
"context deadline exceeded",
/without sending (?:any )?chunks?/i,
],
billing: [ billing: [
/["']?(?:status|code)["']?\s*[:=]\s*402\b|\bhttp\s*402\b|\berror(?:\s+code)?\s*[:=]?\s*402\b|\b(?:got|returned|received)\s+(?:a\s+)?402\b|^\s*402\s+payment/i, /["']?(?:status|code)["']?\s*[:=]\s*402\b|\bhttp\s*402\b|\berror(?:\s+code)?\s*[:=]?\s*402\b|\b(?:got|returned|received)\s+(?:a\s+)?402\b|^\s*402\s+payment/i,
"payment required", "payment required",