Ошибка должна быть в теле запроса.
Обработка ошибок на клиенте зависит от того, каким образом вы отправляете запросы (fetch, axios и т.п.).
Как правило, тело ошибочного ответа можно получить в catch у промиса.
Если это фетч, то ошибочный респонз надо предварительно распарсить (response.json() или response.text()). Кроме того, по умолчанию фетч не реджектит промис, если ответ пришел не со статусом 200, так что это тоже надо обработать
if (response.status >= 200 && response.status < 300) {
return Promise.resolve(response);
} else {
return Promise.reject(response.json())
}