Сервер ответил 500, а в таблице заказов вместо ошибки пустые строки
async function loadOrders() {
try {
const response = await fetch('/api/orders');
const data = await response.json();
setOrders(data.items);
} catch (e) {
setError('Не удалось загрузить заказы');
}
}
Сервер ответил 500 с телом {"error": "db timeout"}. Сообщения об ошибке пользователь не увидел, а таблица опустела. Почему?
- fetch не бросает исключение на 4xx и 5xx — нужно проверять response.ok
- response.json() на ответе с ошибкой возвращает пустой массив
- catch не ловит ошибки из await внутри async-функции
- Браузер кэширует ответ 500 и отдаёт старые данные
