Expose body-free HTTP status and Retry-After metadata
Los mantenedores suelen responder en 2 días
@bolinfest ya está trabajando en esto.
Desde el 14/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Problem
The reqwest Streamable HTTP client preserves structured details for selected
authentication failures, but callers cannot reliably distinguish a 429 or
5xx response or inspect Retry-After. Falling through to response parsing can
also turn the failure into a body-related error that no longer exposes the HTTP
status.
Proposed direction
Return a typed, body-free error for 429 and 5xx responses immediately after
the GET or POST completes:
pub struct HttpStatusError {
pub status: u16,
pub retry_after: Option<String>,
}
Only a valid UTF-8 Retry-After value of at most 128 bytes would be retained.
The response body, request authentication, and other headers would not be
stored in the error.
This is intentionally narrower than #388, which discusses broader rate-limit
behavior. It is also separate from #1246: this proposal does not add response
size configuration, buffered-body limits, trait changes, or body-reading code.
For 429 and 5xx, it returns before reading a body at all.
Planned validation
Loopback reqwest tests would exercise POST 429 and GET 503 responses with
Retry-After, private bodies, and private request state, then verify that the
typed error retains only the intended metadata. A helper test would cover a
valid retry value, invalid UTF-8, and a 129-byte value. Both GET and POST call
sites would use the same classification helper.
Would this error shape and narrow status set fit the transport API?
- Lenguaje dominante
- Rust
- Estrellas
- 4k
- Forks
- 662
- Merge medio
- 3 d 11 h
- PR fusionados (30 d)
- 36
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 modelcontextprotocol/rust-sdk
-
Streamable HTTP client: a 401 or 403 with a JSON-RPC error body and no WWW-Authenticate loses its HTTP statusPosiblemente ocupada @aton-of-data la tomó hace 7 días. Abiertobug P2 ready for work T-security T-transport
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
modelcontextprotocol/rust-sdk#1339 ·
Los mantenedores suelen responder en 2 días
-
auth: refresh_token() requests offline_access that was never granted, so refreshes fail with invalid_scopePosiblemente ocupada @jstar0 la tomó hace 10 días. Abiertobug P1 ready for work T-security T-transport
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
modelcontextprotocol/rust-sdk#1330 ·
Los mantenedores suelen responder en 2 días
-
P3 question Stale T-documentation T-enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
modelcontextprotocol/rust-sdk#1155 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
outputSchema is generated for the deserialize contract; tool results are serialisedPosiblemente ocupada @connor4312 la tomó hace 2 días. Abiertobug P2 ready for work T-handler
modelcontextprotocol/rust-sdk#1374 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Streamable HTTP client: update the stored endpoint URI after a 308Posiblemente ocupada @connor4312 la tomó hace 2 días. Abiertoenhancement P3 T-transport
modelcontextprotocol/rust-sdk#1373 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de modelcontextprotocol/rust-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
yologdev/yoyo-evolve#1053 ·
-
bug lompi security sev-9
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
area:config area:security bug good first issue platform:linux platform:windows priority:medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rtk-ai/rtk#4651 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
niravpatidar37/mcpsum#80 ·
Los mantenedores suelen responder en 1 día