Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Expose body-free HTTP status and Retry-After metadata

Abierto
#1,356 1 comentario 0 reacciones 1 asignado Ver en GitHub

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

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelcontextprotocol/rust-sdk

Todos los issues de modelcontextprotocol/rust-sdk

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.