n1ro°
RU

Ошибки · Решение

curl error 22: HTTP response >=400 with fail option

Это не отдельный HTTP-статус: код 22 — локальный exit code curl, сигнализирующий о неуспешном HTTP-ответе при соответствующей опции.

Редакция N1RO · Проверено

Короткий ответ

Код 22 используется curl для HTTP-ошибки при включённом `--fail` или `--fail-with-body`, когда сервер вернул статус 400 или выше.

Что означает ошибка

Это не отдельный HTTP-статус: код 22 — локальный exit code curl, сигнализирующий о неуспешном HTTP-ответе при соответствующей опции.

Возможные причины

  • Endpoint вернул 4xx из-за запроса или авторизации.
  • Удалённый сервер вернул 5xx.
  • CI использует `--fail`, поэтому HTTP-статус преобразуется в ненулевой exit code.

Что проверить

  • Выведите `%{http_code}` через `--write-out`.
  • Посмотрите тело ответа с `--fail-with-body`, если оно безопасно для логов.
  • Разделите диагностику HTTP-кода и самого exit code 22.

Безопасные шаги

  1. Исправляйте первопричину конкретного HTTP 4xx/5xx.
  2. Не удаляйте `--fail` только ради зелёного CI.
  3. Для ретраев повторяйте лишь временные серверные/сетевые ошибки, а не любой код 22.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Если `--fail` возвращает 22 в автоматизации, сохраните фактический HTTP-статус и безопасный фрагмент ответа: именно их нужно передать владельцу API, а не только exit code curl.

Похожие ошибки

  • /errors/curl-error-1-unsupported-protocol/
  • /errors/curl-error-2-failed-init/
  • /errors/curl-error-4-feature-not-built-in/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.