Тогда реализуйте еще один класс, что-то а-ля NetworkExceptionTimeOut и по нему сверяйтесь, isExpired -> идем в сеть
Я думаю в класс который используется для получение данных из сети и из кэша(в данным случаи используется один и тот же класс), там объявить поля isLastTimeServerError. Где будет храниться последние время, когда произошла серверная ошибка. А самом Repository я буду проверять, если произойдёт серверная ошибка, то я поставлю отметку в этом поле и дальнейшем буду отправлять данные из кэша. Даже в первом случаи, когда произойдёт ошибка я не буду отправлять саму ошибку. Тут меня больше смущает, что я делаю проверку, какой тип ошибки сервера происходит в Repository и кроме этого получается, что Repository управляет отправлять ошибку пользователю или нет?