alibaba/page-agent · error · InvokeError
SERVER_ERROR
SERVER_ERROR
Error message
Server error: ${errorMessage} What it means
The endpoint returned an HTTP 5xx status — a server-side failure at the provider (overload, upstream crash, gateway timeout). The response body's error message (or statusText) is included, and the parsed errorData is attached as details.
Source
Thrown at packages/llms/src/OpenAIClient.ts:116
}
const errorMessage = errorData?.error?.message || response.statusText
if (response.status === 401 || response.status === 403) {
throw new InvokeError(
InvokeErrorTypes.AUTH_ERROR,
`Authentication failed: ${errorMessage}`,
errorData
)
}
if (response.status === 429) {
throw new InvokeError(
InvokeErrorTypes.RATE_LIMIT,
`Rate limit exceeded: ${errorMessage}`,
errorData
)
}
if (response.status >= 500) {
throw new InvokeError(
InvokeErrorTypes.SERVER_ERROR,
`Server error: ${errorMessage}`,
errorData
)
}
throw new InvokeError(
InvokeErrorTypes.UNKNOWN,
`HTTP ${response.status}: ${errorMessage}`,
errorData
)
}
// 4. Parse and validate response
let data: any
try {
data = await response.json()
} catch (error) {
if ((error as any)?.name === 'AbortError') throw errorView on GitHub (pinned to d02db1ee7c)
Solutions
- Retry with exponential backoff — 5xx is usually transient
- If using a local/self-hosted server, check its logs and memory (reduce context length or model size)
- Check the provider status page for ongoing incidents
- Inspect attached errorData for the provider's specific error message
Defensive patterns
Strategy: retry
Type guard
const isServerError = (e: unknown): e is InvokeError => e instanceof InvokeError && e.code === 'SERVER_ERROR'
Try / catch
try {
return await withRetry(() => client.invoke(req), { retries: 3, on: isServerError })
} catch (e) {
if (isServerError(e)) notifyOps(`Provider 5xx: ${e.message}`)
throw e
} Prevention
- Wrap invoke in exponential-backoff retry for 5xx only
- Monitor provider status pages for incidents
- For self-hosted servers, watch memory and set timeouts
When it happens
Trigger: invoke() receives 500/502/503/504 from the provider: OpenAI incident, overloaded local inference server, OOM'd llama.cpp process, reverse proxy (nginx) returning 502 because the backend crashed.
Common situations: Provider outage (check status page); local model server running out of memory or crashing mid-request; gateway/proxy misrouting; very large prompts causing the upstream to time out and return 504.
Related errors
AI-assisted analysis of alibaba/page-agent@d02db1ee7c (2026-08-28).
Data as JSON: /api/errors/dbec91bef806a583.
Report an issue: GitHub.