Ошибки
Каждый отказ — JSON-конверт со стабильным машинным кодом, необязательной уточняющей причиной, сообщением для людей и ID запроса для поддержки. Клиенты решают по коду и причине, а не по тексту сообщения.
json
{ "code": "conflict", "reason": "version_exists", "message": "…", "requestId": "…" }Коды
| Код | Статус HTTP | Значение |
|---|---|---|
invalid_input | 400 | Запрос некорректен или значение недопустимо; исправьте запрос, прежде чем отправлять его снова. |
not_found | 404 | Объект не существует или вызывающий не может его видеть. |
conflict | 409 | Запрос противоречит текущему состоянию; прочитайте состояние заново, затем решайте. |
forbidden | 403 | Учётные данные действительны, но у них нет права на это действие. |
unauthorized | 401 | Нет действительных учётных данных: они отсутствуют, неверны, просрочены или отозваны. |
capacity_exceeded | 507 | Будет превышена квота, ёмкость или другое ограничение. |
integrity_mismatch | 422 | Байты не соответствуют заявленному размеру или SHA-256. |
busy | 503 | Сервер достиг предела допуска запросов; повторите после времени, указанного в Retry-After. |
unavailable | 503 | Зависимость сейчас недоступна; повторите после времени, указанного в Retry-After. |
rate_limited | 429 | Слишком много попыток; дождитесь времени, указанного в Retry-After. |
read_only | 405 | Этот узел не принимает изменения (так отвечает шлюз чтения; зеркало отвечает conflict с причиной mirror_read_only). |
internal | 500 | Непредвиденный дефект сервера; ID запроса поможет поддержке найти его. Не повторяйте запрос вслепую. |
Причины
| Код | Причина | Статус HTTP | Значение |
|---|---|---|---|
invalid_input | validation | 400 | Поле отсутствует или его значение нарушает правила; поле названо в details. |
invalid_input | malformed_json | 400 | Тело не является корректным JSON. |
invalid_input | body_too_large | 413 | Тело больше, чем допускает эта операция. |
invalid_input | unsupported_media_type | 415 | Эта операция не принимает указанный Content-Type. |
invalid_input | method_not_allowed | 405 | Путь существует, но не для этого метода. |
invalid_input | range_not_satisfiable | 416 | Запрошенный диапазон байтов выходит за пределы содержимого. |
not_found | route_not_found | 404 | Такого маршрута нет. |
conflict | upload_expired | 409 | Срок сессии загрузки истёк до её завершения. |
conflict | upload_state | 409 | Загрузка находится в состоянии, в котором этот шаг недопустим. |
conflict | revision_mismatch | 409 | Ожидаемая ревизия не является текущей (раньше прошло другое изменение). |
conflict | version_exists | 409 | Эта версия уже опубликована с другим содержимым. |
conflict | part_mismatch | 409 | Часть не соответствует заявленному размеру или SHA-256. |
conflict | parts_incomplete | 409 | Пришли ещё не все части загрузки. |
conflict | idempotency_mismatch | 409 | Idempotency-Key уже использовался с другим запросом. |
conflict | already_exists | 409 | Объект с таким именем или путём уже существует. |
conflict | stage_limit | 409 | У артефакта максимальное число стадий. |
conflict | state_conflict | 409 | Объект находится в состоянии, в котором это изменение недопустимо. |
conflict | mirror_read_only | 409 | Репозиторий является зеркалом; он меняется только через синхронизацию. |
forbidden | permission_missing | 403 | У учётных данных нет действия, которое требует эта операция. |
forbidden | read_only_token | 403 | Персональный токен только для чтения ничего не может изменять. |
forbidden | credential_revoked | 403 | Ключ или токен отозван. |
forbidden | session_required | 403 | Это может сделать только сессия вошедшей учётной записи, но не ключ. |
forbidden | administrator_required | 403 | Это может сделать только администратор. |
forbidden | registration_disabled | 403 | Саморегистрация на этом сервере отключена. |
forbidden | origin_not_allowed | 403 | Источник (origin) браузера не входит в ARKVORY_CORS_ORIGINS. |
unauthorized | invalid_credentials | 401 | Неверное имя учётной записи или пароль. |
unauthorized | current_password_invalid | 401 | Неверный текущий пароль. |
unauthorized | credential_missing | 401 | В запросе нет учётных данных. |
unauthorized | credential_invalid | 401 | Учётные данные не являются действительным ключом, токеном или сессией. |
unauthorized | session_expired | 401 | Срок сессии истёк; войдите снова. |
unauthorized | token_expired | 401 | Срок действия персонального токена истёк. |
capacity_exceeded | storage_quota | 507 | Будет превышена квота репозитория. |
capacity_exceeded | storage_full | 507 | На диске сервера остался только резерв свободного места; для большего объёма места нет. |
capacity_exceeded | account_limit | 507 | Достигнуто предельное число учётных записей. |
capacity_exceeded | group_limit | 507 | Достигнуто предельное число групп. |
capacity_exceeded | membership_limit | 507 | Достигнуто предельное число членств в группах. |
capacity_exceeded | grant_limit | 507 | Достигнуто предельное число назначений доступа. |
capacity_exceeded | key_limit | 507 | Достигнуто предельное число ключей. |
capacity_exceeded | token_limit | 507 | Достигнуто предельное число персональных токенов. |
capacity_exceeded | delegation_limit | 507 | Достигнуто предельное число делегирований. |
capacity_exceeded | catalog_limit | 507 | Будет превышена ёмкость каталога установки. |
capacity_exceeded | queue_full | 507 | Очередь передач заполнена. |
capacity_exceeded | transfer_limit | 507 | У вызывающего уже столько передач, сколько разрешено. |
busy | request_limit | 503 | Сервер обрабатывает столько запросов, сколько допускает. |
busy | download_queued | 503 | Скачивание ждёт в очереди; повторите после Retry-After. Arkvory-Queue-Position и Arkvory-Starts-At сообщают место и ожидаемое начало. |
unavailable | feedback_disabled | 503 | Обратная связь на этом сервере отключена. |
unavailable | hub_unreachable | 503 | Хаб обновлений недоступен. |
unavailable | replication_degraded | 503 | В HA-кластере меньше полных копий, чем нужно для записи, поэтому изменение не подтверждено; повторите после Retry-After. Скачивание работает. |
rate_limited | login_attempts | 429 | Слишком много попыток входа; подождите. |
rate_limited | registration_attempts | 429 | Слишком много попыток регистрации; подождите. |
rate_limited | password_attempts | 429 | Слишком много попыток ввода пароля; подождите. |
rate_limited | feedback_attempts | 429 | Слишком много отчётов обратной связи; подождите. |