[http] fetch leaks responses that are never read (including every 204)
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 54/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, rust
- Área
- backend, networking
Línea de trabajo
Start in the tauri-plugin-http fetch response handling and trace how ReqwestResponse resources are retained when a body is read, left unread, or has a null-body status. Use the linked reproduction to confirm the leak and compare its 204 and unread-body cases. Done means those cases release response resources and connections as native fetch does.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
tauri-plugin-http keeps every response on the Rust side until JS reads the whole body or cancels it. So these responses are never freed:
- a response whose body is never read
- every 204 (and other null-body status) response, even if you read it
With large bodies, each leaked response also keeps its TCP connection open. An app opened from the Dock can only open 256 files, so after about 250 such requests, every new request fails.
I'll have my AI agent post a more detailed analysis below.
Reproduction
https://github.com/ocavuebot/tauri-http-leak-repro
Minimal case:
for (let i = 0; i < 300; i++) {
const res = await fetch('http://127.0.0.1:PORT/empty') // answers 204
await res.arrayBuffer()
}
After the loop, the resource table still holds 300 ReqwestResponse entries, after GC and after location.reload(). The same loop with a 256 KB body and no read leaves 300 open sockets in the app process.
Expected behavior
Same as the webview's native fetch: nothing leaks. With native fetch, the same tests leave nothing behind.
Full tauri info output
[✔] Environment
- OS: Mac OS 27.0.1 arm64 (X64)
✔ Xcode Command Line Tools: installed
✔ Xcode: 27.1
✔ rustc: 1.99.1 (58cf8f9c3 2026-10-13)
✔ cargo: 1.99.1 (5f94df478 2026-08-27)
✔ rustup: 1.29.1 (d95a37b6a 2026-08-13)
✔ Rust toolchain: stable-aarch64-apple-darwin (default)
- node: 24.21.0
- pnpm: 12.14.0
- yarn: 1.22.22
- npm: 11.19.0
[-] Packages
- tauri 🦀: 2.12.4, (outdated, latest: 2.12.5)
- tauri-build 🦀: 2.7.3, (outdated, latest: 2.7.4)
- wry 🦀: 0.57.0, (outdated, latest: 0.57.1)
- tao 🦀: 0.37.1, (outdated, latest: 0.37.2)
[-] Plugins
- tauri-plugin-http 🦀: 2.8.3
- tauri-plugin-fs 🦀: 2.7.1
[-] App
- build-type: build
- CSP: unset
- frontendDist: ../dist
Stack trace
Additional context
No response
- Lenguaje dominante
- Rust
- Estrellas
- 1.8k
- Forks
- 637
- Merge medio
- 5 d 3 h
- PR fusionados (30 d)
- 36
Preparar el entorno
- 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 tauri-apps/plugins-workspace
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
tauri-apps/plugins-workspace#3780 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
tauri-apps/plugins-workspace#3770 ·
Los mantenedores suelen responder en 3 días
-
[notification] init script fires IPC on about:blank → 500 'Origin header is not a valid URL' on Linux (WebKitGTK)Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertoplatform: linux plugin: notification type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
tauri-apps/plugins-workspace#3562 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
tauri-apps/plugins-workspace#3543 ·
Los mantenedores suelen responder en 3 días
-
platform: ios plugin: notification type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
tauri-apps/plugins-workspace#3533 ·
Los mantenedores suelen responder en 3 días
Todos los issues de tauri-apps/plugins-workspace
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
servo/rust-smallvec#877 ·
-
A-documentation S-needs-triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Quantinuum/hugr#3344 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NVIDIA/spark-local-inference#268 ·