Вопрос проверяет умение корректно диагностировать источник ошибки и не перекладывать проблемы интеграции на внешние системы.
Ошибки внешнего сервиса обычно проявляются как сетевые сбои, таймауты или корректные HTTP-ответы с кодами 4xx/5xx. Ошибки интеграции возникают из-за неправильных запросов, форматов данных, логики обработки или ожиданий от API. Для различения важно анализировать тип ошибки, код ответа и контекст запроса. Также помогают логи запросов и ответов. Чёткое разделение ошибок упрощает отладку и поддержку.
Для устойчивой системы критично понимать, кто именно виноват в ошибке — вы или внешняя зависимость.
Ошибка внешнего сервиса — корректный или некорректный ответ зависимости, возникший вне вашего контроля.
Ошибка интеграции — ошибка, вызванная неправильным использованием API или логикой вашего сервиса.
Сетевые проблемы
timeout
connection reset
DNS errors
HTTP 5xx
сервис недоступен
внутренняя ошибка провайдера
Нестабильность во времени
одинаковые запросы иногда успешны, иногда нет
HTTP 4xx
некорректные параметры
неверный формат запроса
Ошибки десериализации
неожиданный JSON
отсутствующие поля
Логические ошибки
неверная интерпретация статусов
нарушение контракта API
Перед началом списка важно отметить: одна и та же ошибка может выглядеть по-разному без контекста.
Логировать запрос и ответ
URL, параметры, headers (без чувствительных данных)
Разделять типы исключений
transport / protocol / business
Вводить собственную классификацию ошибок
ExternalServiceError
IntegrationError
Сравнивать с документацией API
if response.status_code >= 500:
raise ExternalServiceError()
elif response.status_code == 400:
raise IntegrationError()
Чёткое различие между ошибками внешнего сервиса и ошибками интеграции позволяет быстрее устранять проблемы, корректно настраивать ретраи и не искажать метрики стабильности.