HTTP ERRORS · SAFE RECOVERY
Ошибки и восстановление
Читайте HTTP status вместе с machine error code, response headers и исходным command identity. Не превращайте неизвестный результат в успех и не повторяйте mutation с новым ключом.
- Граница выполнения
- HTTP contract · safe messages only
- ErrorResponse и domain response mappings
- РЕАЛИЗОВАНО
Контракты и исходные файлыOpenAPI, схемы и примеры для скачивания.
OpenAPI, схемы и примеры для скачивания.
Общая ErrorResponse содержит объект error с обязательными code и message. Отдельные domain envelopes могут добавлять safe_message, recommended_action, field_errors и diagnostic references — точный shape всегда берите из операции OpenAPI.
{
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "Idempotency key is already bound to different content."
}
}| Status | Смысл | Действие caller |
|---|---|---|
| 400 / 415 / 422 | Request или media contract нарушен | Исправить request; не повторять вслепую |
| 401 / 403 | Credential или authority boundary | Остановить; обновить разрешённую identity |
| 404 | Resource отсутствует в authenticated scope | Проверить opaque reference и tenant context |
| 409 | Idempotency или lifecycle conflict | Разобрать исходную команду; не менять key для обхода |
| 429 | Bounded admission/backpressure | Соблюсти Retry-After и повторить exact command |
| 503 | Authoritative 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 и чувствительных данных.