502 и 400: нет доступного выхода
Обе означают, что шлюз не смог дать запрошенное. Ни одна не связана с вашими учётными данными.
400, неизвестная страна или город
У названной локации сейчас нет доступных адресов. Чаще всего это дают запросы уровня города, потому что покрытие следует за устройствами, которые оказались онлайн.
Сначала проверьте написание: дефисы вместо пробелов, код страны заглавными. Если написание верное, пул просто пуст в эту минуту.
502, вышестоящая сеть отказала
Шлюз не смог построить маршрут ни через один подходящий выход. Одиночный 502 это нормальный фоновый шум резидентской сети, и повтор обычно проходит.
Ответ 502, который держится больше минуты на одном и том же таргетинге, означает, что пул под это описание исчерпан. Расширьте таргетинг или смените страну, а если продолжается, напишите в поддержку.
Как правильно откатываться
Понижайте детализацию, а не повторяйте тот же запрос. Город до страны, страна до без ограничений, и записывайте, какой уровень реально отдал данные, чтобы датасет остался честным.
Никогда не крутите ни ту, ни другую ошибку в плотном цикле. На тарифицируемых продуктах каждая попытка стоит трафика, а на всех продуктах она откладывает откат, который бы сработал.
Лестница отката
for attempt in (city_level, country_level, no_geo):
try:
return fetch(url, proxy=attempt())
except (GeoUnavailable, UpstreamRefused):
continue
raise NoRouteAvailableОтличить нехватку запаса от ошибки настройки
Обе ошибки описывают пул, а не ваш аккаунт, но приходят по разным причинам, и одну из них имеет смысл повторять, а другую нет.
Быстрый способ разделить: запросите тот же таргетинг без города, затем без страны. Если голый логин работает, дело в наличии на том уровне, который вы запросили.
Сужение проблемы
curl -x login_c_US_city_New-York:pass@proxy.sotaproxy.com:10000 https://api.ipify.org # 400?
curl -x login_c_US:pass@proxy.sotaproxy.com:10000 https://api.ipify.org # works?
curl -x login:pass@proxy.sotaproxy.com:10000 https://api.ipify.org # works?
# Works at country level -> city pool is empty right now
# Fails at every level -> write to support, that is not normal