Мы говорим говорим о ошибках, возвращаемых апи, к которому вы обращаетесь, а не fetch api, верно? Тогда стоит обратить внимание, что какой бы статус не вернулся на запрос (будь то 404 или 200), fetch не будет возвращать error, так что нужно писать обработчик на нужный(е) варианты. Статус хранится в свойстве status объекта Response. Так же у Response есть свойство ok, которое принимает значение true в случаях, если статус входит в интервал 200-299.
Тем не менее, не всегда в случаях ошибки сервер возвращает невалидный статус, так что решение разнится от варианта к варианту.