bug: user-facing error discards the provider's reason, only shows "Provider returned error"
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 68/100
Línea de trabajo
Comienza con la ruta de manejo de errores de la tarea de chat descrita en el issue y sigue cómo la respuesta del proveedor se convierte en el error del mensaje y en el texto de la burbuja de la UI. Verifica el manejo de error.metadata.raw y de error.message, que es genérico. Se considera terminado cuando el error visible para el usuario incluye el motivo accionable del proveedor cuando está presente, sin abordar el comportamiento de auto-retry.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When an upstream provider fails, OpenRouter returns a structured error with the real reason in error.metadata.raw. Example from a live failure:
{"error":{"message":"Provider returned error","code":429,"metadata":{"raw":"z-ai/glm-5.3-flash is temporarily rate-limited upstream. Please retry shortly, or add your own key to accumulate your rate limits: ...","provider_name":"BaseTen","limit_source":"upstream_provider_shared_pool","remedy_hint":"Retry shortly, add your own provider key, or route to another provider"}}}
The chat task's error handling reads only error.message and stores that as the message error. So the chat shows:
Error: Provider returned error
That string carries zero actionable information: no rate limit, no provider name, no retry hint. The user cannot tell a transient 429 (retry in a minute) from a dead API key (needs settings) from a model outage (switch model). The full reason was in the response body and got dropped on the floor.
Suggested change: when building the error message, prefer error.metadata.raw over error.message when the message is the generic "Provider returned error" (or more generally, include the raw reason whenever metadata is present). Same for the error the user sees in the UI bubble.
Related: #188 asks for auto-retry on 429, which is a separate ask; this issue is only about surfacing the actual reason when the error is shown. #178 was an earlier report where the error stayed invisible.
- Lenguaje dominante
- Python
- Estrellas
- 570
- Forks
- 79
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de open-webui/computer
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
open-webui/computer#286 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
open-webui/computer#276 · 1 comentario · 1 reacción ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
open-webui/computer#271 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/computer#269 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
open-webui/computer#250 · 1 comentario ·
Todos los issues de open-webui/computer
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
stephrobert/dsoxlab#238 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
sublimehq/package_control#1780 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
nwg-piotr/nwg-displays#145 ·