API отвечает 200 OK с телом {"success": false}
На попытку регистрации с занятым e-mail API отдаёт HTTP 200 и тело:
{"success": false, "error": "e-mail уже используется"}
Мобильное приложение показывает пользователю пустой экран, а на дашборде ошибок API их количество равно нулю. Что здесь не так?
- Ничего критичного: флага success в теле достаточно, а коды 4xx предназначены для ошибок веб-сервера и маршрутизации, а не для логики приложения
- Код ответа — часть контракта: по 200 клиенты и мониторинг считают запрос успешным, ошибка не попадает в метрики. Для ошибки валидации нужен статус 4xx
- Проблема в кэшировании: ответ 200 прокси и браузеры кэшируют по умолчанию, а 4xx не кэшируется никогда, поэтому клиент видит устаревший ответ
- Проблема только в формате тела: текст ошибки следует возвращать строкой, а не объектом, иначе клиентские SDK не могут её разобрать
