# Ошибки

> Каталог ошибок: HTTP-статус, коды проблем OperationOutcome и действия для каждого случая.

Source: https://developers.anpheros.com/ru/guides/errors

Под ошибками `/fhir/R4` подразумеваются `OperationOutcome`; в остальных случаях `{"error": {"type", "message", "field"?}}`. Каждый ответ содержит `Anpheros-Request-Id`; цитируйте его при обращении в службу поддержки.

| HTTP | `issue.code` / `type` | Значение | Действия |
|---|---|---|---|
| 400 | `invalid`, `structure`, `value` | некорректный JSON, невалидный FHIR, значение отсутствует в требуемом наборе значений, неподдерживаемый параметр поиска, неподдерживаемый фильтр области видимости | исправить запрос; в сообщении указано имя поля |
| 400 | `too-costly` | вложенность ресурсов > 64 уровней, текст > 10 000 символов | упростить ресурс |
| 401 | `login` | отсутствует, неизвестен, истек срок действия или отозван идентификатор; согласие больше не активно; ответ содержит `WWW-Authenticate: Bearer realm="anpheros"` (с `error="invalid_token"`, если идентификатор был отправлен) | повторно аутентифицироваться; для OAuth обновить или повторно дать согласие |
| 403 | `forbidden` | область видимости, право собственности (записано другой организацией), разрешение только на чтение, только для администратора | запросить правильную область видимости; записать собственный ресурс |
| 404 | `not-found` | не существует для данного вызывающего | никогда не предполагайте существование на основе 404 |
| 409 | `conflict` | ключ идемпотентности в процессе обработки; документ уже финальный; лимит конечной точки | повторить попытку вскоре / использовать новый ключ |
| 410 | `deleted` | ресурс или файл удален | — |
| 412 | `conflict` | несоответствие версии `If-Match` | перечитать, затем обновить |
| 413 | `too-costly` | тело или документ превышает лимит | разделить или сжать |
| 422 | `not-found` / `invalid` | указанный пациент для вас не существует; ресурс перемещен между пациентами; ключ идемпотентности повторно использован с другим телом | исправить ссылку |
| 429 | `throttled` | ограничение скорости для данного идентификатора или IP-адреса | подождать `Retry-After` секунд; SDK делают это автоматически |
| 503 | `transient` | хранилище документов недоступно | повторить попытку с экспоненциальной задержкой |
| 500 | `exception` | непредвиденная ошибка, зарегистрирована и аудирована с идентификатором запроса | сообщить идентификатор запроса |
