Если ответ сервера — 200, а в теле ответа — ошибка, чем это может быть вызвано?

Вопрос проверяет, понимает ли кандидат разницу между HTTP-статусом и результатом бизнес-операции. Для саппорта важно смотреть не только на статус-код, но и на тело ответа.
HTTP-код 200 означает, что HTTP-запрос был успешно обработан на транспортном уровне, но не обязательно означает успешное выполнение бизнес-операции. Приложение могло вернуть ошибку внутри тела ответа, например в поле error или errors. Такое поведение может быть особенностью API или его некорректной реализацией.
«Такого быть не может: если в ответе ошибка, сервер обязательно должен вернуть 4xx или 5xx».