-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Bug: Gateway falsely marks healthy local vLLM endpoints as timed out/overloaded, causing 1–23 min fallback cascades #63229
Copy link
Copy link
Open
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.Crash, hang, restart loop, or process-level availability failure.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Description
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.Crash, hang, restart loop, or process-level availability failure.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Type
Fields
Priority
None yet
Summary
The gateway's model-fallback/routing subsystem incorrectly marks healthy, responsive local vLLM endpoints as "timed out" or "overloaded", causing cascading fallback chains that take 1–23 minutes to resolve. The endpoints themselves respond in 0.27–0.93s when tested directly via curl.
Environment
vllm-8001(gemma4, 27B) on jupiter.wg.local:8001 — dedicated GPUvllm-7002(qwen3.5-27b) on jupiter.wg.local:7002 — dedicated GPUagents.defaults.timeoutSeconds: 1200,agents.defaults.llm.idleTimeoutSeconds: 300Observed Behaviour
1. Endpoints are fast (direct curl, concurrent)
Both GPUs idle, tested concurrently:
2. Gateway marks them as timed out or overloaded
From gateway logs, model fallback decisions for today:
Failure reasons:
timeout: 17 occurrencesunknown: 8overloaded: 2Error previews:
LLM request timed out.: 12Gateway is draining for restart; new tasks are not accepted: 8cron: job execution timed out: 4Live session model switch requested: <model>: 2Request was aborted.: 13. Fallback chains take minutes
Example fallback chains from today's logs:
7c914aae21ca97c00cb0620666f5e9e54. Gateway can't even spawn subagents
Attempting
sessions_spawnreturns:Meanwhile, direct curl to the same endpoints returns in <1s.
5. "Overloaded" misclassification
The gateway logs show
reason: "overloaded"witherrorPreview: "Live session model switch requested: novita/zai-org/glm-4.7". A session model mismatch is being classified as a provider overload — the gateway is conflating an internal session state error with provider unavailability.Expected Behaviour
sessions_spawnshould not time out when the gateway is under normal loadRoot Cause Hypothesis
Two distinct bugs:
Internal timeout too aggressive or misapplied: The gateway's LLM request timeout fires before the endpoint responds, or the timeout is applied to an internal queue wait rather than the actual HTTP request. Endpoints respond in <1s but the gateway reports "LLM request timed out" 17 times today.
LiveSessionModelSwitchError misclassified as "overloaded": When a cron job or isolated session requests a model different from the live session's current model, the gateway throws
LiveSessionModelSwitchErrorand classifies this asreason: "overloaded"in the fallback system. This is semantically wrong and triggers unnecessary fallback cascading.Reproduction
curldirectly against the same endpoints to confirm sub-second responseImpact
sessions_spawnand CLI commandsAdditional Context
LiveSessionModelSwitchErrorappears 17 times in today's logs, suggesting this is the dominant failure modeagents.defaults.maxConcurrent: 8with 5 agents may amplify the issue but is not the root cause — the endpoints are idle when failures occur