Ответ 1
Я знаю, что меня можно считать немного у стены, но есть и другой вариант.
Мы знаем, что время от времени появляется ошибка, которая происходит при транзите. Мы знаем, что сейчас мало что можно сделать, чтобы остановить проблему. Если вы предоставляете API только тогда, прекратите читать, но если вы тоже напишите клиент, продолжайте.
Ошибка - это известный случай и известная причина. Результат пустого возвращаемого значения означает, что что-то пошло не так. Однако значение доступно и было выбрано, вычислено, независимо от того... Мой инстинкт как разработчик должен обрабатывать пустой результат как ошибку HTTP и запрашивать, чтобы данные были повторно отправлены. Затем вы можете отслеживать запросы повторной отправки и видеть, как часто это происходит.
Я бы посоветовал (хотя вы напомнили мне, что разработчик тоже подумал об этом), что вы подсчитываете запросы и устанавливаете разумное значение для ответа "сетевой ошибки" на пользователя. Моим инстинктом было бы сразу же повторить попытку, а затем немного подождать, прежде чем повторить попытку.
Из того, что вы описали, первая повторная попытка, вероятно, правильно подберет данные. Разумеется, это может означать, что старые запросы выполняются в кеше в течение нескольких минут или запускают запрос второй раз в зависимости от того, что, пожалуй, наиболее уместно.
Это также проложит вокруг любого количества других сетевых ошибок в сети "точка-точка" и оставьте приложение более надежным даже перед лицом проблем с подключением.
Я знаю наш инстинкт, поскольку разработчики должны исправить известную ошибку, но иногда лучше работать с системой, способной работать, несмотря на ошибки. Тем не менее, он никогда не боится регистрировать ошибки и проблемы и все равно попытаться их исправить.