mirror of
https://github.com/open-webui/open-webui.git
synced 2026-08-24 14:23:59 -05:00
Log upstream provider rejections at warn/error level (#27238)
When an upstream provider rejects a request (e.g. a 400 for a max_tokens value above the model's ceiling), the actionable error message was only published to event sinks, which are invisible unless an event function or webhook is configured. Admins had to query the provider's API directly to diagnose failures (open-webui#27237). Add a single log line in publish_model_provider_request_failed — the chokepoint every upstream failure path (OpenAI-compatible chat, embeddings, responses, token counting, and Ollama) already routes through — recording status, provider, url, model, error code, and the upstream message truncated to 1000 chars. 4xx logs at WARNING, 5xx at ERROR. Client-facing responses are unchanged, so no additional error detail is exposed in the chat. Claude-Session: https://claude.ai/code/session_018VecyiPejru1EVF5yfe2sU Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1193,6 +1193,20 @@ async def publish_model_provider_request_failed(
|
||||
else 'upstream_error'
|
||||
)
|
||||
|
||||
# Server-log only; the upstream error body is otherwise invisible to admins
|
||||
# (event sinks require an event function or webhook to be configured).
|
||||
log.log(
|
||||
logging.ERROR if status >= 500 else logging.WARNING,
|
||||
'Upstream %s request failed: HTTP %d (%s) url=%s model=%s code=%s message=%s',
|
||||
provider,
|
||||
status,
|
||||
error_type,
|
||||
base_url,
|
||||
requested_model or '-',
|
||||
error_code or '-',
|
||||
error_text[:MAX_STRING_LENGTH] or '-',
|
||||
)
|
||||
|
||||
data = {
|
||||
'error_type': error_type,
|
||||
'status': status,
|
||||
|
||||
Reference in New Issue
Block a user