fix(frontend): apiFetchWithStatus body stream double-read crash #149

Merged
lekss361 merged 1 commit from fix/api-body-stream-double-read into main 2026-05-15 04:39:21 +00:00

View file

@ -47,13 +47,17 @@ export async function apiFetchWithStatus<T>(
},
});
let body: unknown = null;
// 204 No Content имеет пустое тело; для всех остальных пытаемся JSON
// 204 No Content имеет пустое тело; для всех остальных читаем как text один раз
// (fetch body stream consumable только один раз — нельзя сначала .json() потом .text()).
if (response.status !== 204) {
try {
body = await response.json();
} catch {
// fallback на text() — может прилететь HTML error page от Caddy
body = { detail: await response.text() };
const rawText = await response.text();
if (rawText) {
try {
body = JSON.parse(rawText);
} catch {
// Не JSON (HTML error page от Caddy / 502 / etc) — оборачиваем в detail
body = { detail: rawText };
}
}
}
if (!response.ok) {