HTTP ERRORS · SAFE RECOVERY

Ошибки и восстановление

Читайте HTTP status вместе с machine error code, response headers и исходным command identity. Не превращайте неизвестный результат в успех и не повторяйте mutation с новым ключом.

Граница выполнения
HTTP contract · safe messages only
ErrorResponse и domain response mappings
РЕАЛИЗОВАНО
Контракты и исходные файлы

OpenAPI, схемы и примеры для скачивания.

Базовая schema

Общая ErrorResponse содержит объект error с обязательными code и message. Отдельные domain envelopes могут добавлять safe_message, recommended_action, field_errors и diagnostic references — точный shape всегда берите из операции OpenAPI.

ErrorResponsejson
{
  "error": {
    "code": "IDEMPOTENCY_CONFLICT",
    "message": "Idempotency key is already bound to different content."
  }
}

Решение по HTTP status

Базовая recovery matrix
StatusСмыслДействие caller
400 / 415 / 422Request или media contract нарушенИсправить request; не повторять вслепую
401 / 403Credential или authority boundaryОстановить; обновить разрешённую identity
404Resource отсутствует в authenticated scopeПроверить opaque reference и tenant context
409Idempotency или lifecycle conflictРазобрать исходную команду; не менять key для обхода
429Bounded admission/backpressureСоблюсти Retry-After и повторить exact command
503Authoritative dependency недоступнаСохранить ambiguity и повторить exact command по policy

Безопасная диагностика

  • Логируйте correlation reference, operationId, HTTP status и safe machine code.
  • Не логируйте bearer, cookies, documents, full restricted payload или signature secret.
  • Сохраняйте исходный idempotency key в защищённом command state, не в публичной telemetry.
  • UNKNOWN и timeout требуют reconciliation; они не равны reject или success.

Нашли неточность?

Участники private repository могут предложить правку через reviewed pull request. Остальные пользователи — отправить техническое сообщение без credentials и чувствительных данных.