Сообщения об ошибках

Сообщения об ошибках REST

При возникновении ошибки информация заголовка содержит:

  • Content-Type: application/xml
  • Соответствующий код состояния HTTP (3xx, 4xx или 5xx).

Тело или сам ответ с сообщением об ошибке также содержит информацию об ошибке. Следующий пример ответа с сообщением об ошибке демонстрирует структуру элементов сообщения, общую для всех сообщений об ошибках REST.


<?xml version="1.0" encoding="UTF-8"?>
<Error>
 <Code>NoSuchKey</Code>
 <Message>The resource you requested does not exist</Message>
 <Resource>/mybucket/myfoto.jpg</Resource>
 <RequestId>4442587FB7D0A2F9</RequestId>
</Error>

Следующая таблица описывает элементы ответов с сообщениями об ошибках REST.


Имя
Описание
Code

Код ошибки – строковое значение, которое однозначно определяет состояние ошибки. Он предназначен для программ, которые его считывают и интерпретируют, обнаруживая и обрабатывая ошибки в соответствии с их типами.

  • Тип: String
  • Предок: Error
Error

Контейнер для всех элементов ошибок.

  • Тип: Блок
  • Предок: нет
Message

Данное сообщение об ошибке содержит общее описание состояния ошибки на английском языке и предназначено для пользователя. Простые программы выводят это сообщение конечному пользователю при возникновении состояния ошибки, которое невозможно или не требуется обрабатывать. Более сложные программы с полным механизмом устранения ошибок и надлежащей локализацией, скорее всего, проигнорируют данное сообщение об ошибке.

  • Тип: String
  • Предок: Error
RequestId

Идентификатор запроса, связанного с ошибкой.

  • Тип: String
  • Предок: Error
Resource

Бакет или объект, связанный с ошибкой.

  • Тип: String
  • Предок: Error

Многие ответы с сообщениями об ошибках содержат дополнительные структурированные данные, предназначенные для разработчика, который их интерпретирует при диагностике ошибок программирования. Например, при отправлении запроса PUT с заголовком Content-MD5, который не совпадает со значением md5 вычисленным на сервере, возникнет ошибка BadDigest. Ответ об ошибке будет включать в себя информацию о вычисленном значении md5 и о предоставленном значении md5. Во время процесса разработки вы можете использовать эту информацию для выявления ошибок. В ходе эксплуатации корректно работающая программа может включать данную информацию в свой журнал регистрации ошибок.

Перечень кодов ошибок

Следующая таблица содержит коды ошибок сервиса.


Код ошибки
Описание
Код состояния HTTP
Префикс кода ошибки SOAP
AccessDenied
Доступ запрещен.
403 Forbidden
Client
AccountProblem
С вашим проектом сервиса возникла проблема, которая не дает операции успешно завершиться.
403 Forbidden
Client
BadDigest
Указанный вами Content-MD5 не совпадает с тем, который получен нами.
400 Bad Request
Client
BucketAlreadyExists
Запрашиваемое имя корзины недоступно. Пространство имен бакетов является общим для всех пользователей системы. Выберите другое имя и повторите попытку.
409 Conflict
Client
BucketAlreadyOwnedByYou
Ваш предыдущий запрос на создание указанного бакета был исполнен — этот бакет уже принадлежит вам.
409 Conflict
Client
BucketNotEmpty
Бакет, который вы попытались удалить, не является пустым.
409 Conflict
Client
CredentialsNotSupported
Данный запрос не поддерживает данные аутентификации.
400 Bad Request
Client
EntityTooSmall
Предложенная вами загрузка меньше минимального допустимого размера объекта.
400 Bad Request
Client
EntityTooLarge
Предложенная вами загрузка превышает максимально допустимый размер объекта.
400 Bad Request
Client
ExpiredToken
Предоставленный токен просрочен.
400 Bad Request
Client
IncompleteBody
Вы не предоставили количество байтов, указанное в заголовке HTTP Content-Length.
400 Bad Request
Client
InlineDataTooLarge
Встроенные данные превышают максимально допустимый размер.
400 Bad Request
Client
InternalError
Возникла внутренняя ошибка. Повторите попытку.
500 Internal Server Error
Server
InvalidAccessKeyId
Предоставленный вами идентификатор ключа доступа сервиса отсутствует в наших записях.
403 Forbidden
Client
InvalidArgument
Недопустимый аргумент.
400 Bad Request
Client
InvalidBucketName
Указанный бакет недопустим.
400 Bad Request
Client
InvalidDigest
Указанный вами Content-MD5 недопустим.
400 Bad Request
Client
InvalidEncryptionAlgorithmError
Указанный вами запрос на шифрование недопустим. Допустимое значение — AES256.
400 Bad Request
Client
InvalidLocationConstraint
Указанное вами ограничение местоположения недопустимо.
400 Bad Request
Client
InvalidObjectState
Операция недопустима при текущем состоянии корзины.
403 Forbidden
Client
InvalidPart
Одна или несколько из указанных частей не могут быть найдены. Возможно, часть уже загружена, или указанный тег сущности не совпал с тегом сущности этой части
400 Bad Request
Client
InvalidPartOrder
Части расположены в перечне не в порядке возрастания.Части должны быть указаны в порядке возрастания номеров.
400 Bad Request
Client
InvalidPayer
Все виды доступа к данному объекту были заблокированы.
403 Forbidden
Client
InvalidPolicyDocument
Содержимое формы не соответствует условиям, указанным в документе политики.
400 Bad Request
Client
InvalidRange
Запрашиваемый диапазон не может быть выделен.
416 Requested Range Not Satisfiable
Client
InvalidSecurity
Предоставленный набор удостоверений защиты неверен.
403 Forbidden
Client
InvalidURI
Невозможно проанализировать указанный URI.
400 Bad Request
Client
KeyTooLong
Ваш ключ слишком длинный.
400 Bad Request
Client
MalformedACLError
Предоставленный вами XML имеет неправильный формат или не прошел проверку на соответствие нашей опубликованной схеме.
400 Bad Request
Client
MalformedXML
Эта ошибка возникает, когда пользователь отправляет для конфигурации XML неправильного формата (XML-файл не соответствует опубликованному XSD-файлу). Выводимое сообщение об ошибке следующее: «Предоставленный вами XML имеет неправильный формат или не прошел проверку на соответствие нашей опубликованной схеме».
400 Bad Request
Client
MaxMessageLengthExceeded
Размер вашего запроса слишком большой.
400 Bad Request
Client
MetadataTooLarge
Ваши заголовки метаданных превышают максимально допустимый размер метаданных.
400 Bad Request
Client
MethodNotAllowed
Указанный метод недоступен для этого ресурса.
405 Method Not Allowed
Client
MissingContentLength
Вы должны предоставить заголовок HTTP Content-Length.
411 Length Required
Client
MissingRequestBodyError
Данная ошибка возникает при попытке пользователя отправить пустой XML-документ в качестве запроса. Выводимое сообщение об ошибке следующее: «Нет данных в теле запроса».
400 Bad Request
Client
MissingSecurityHeader
У вашего запроса отсутствует требуемый заголовок.
400 Bad Request
Client
NoSuchBucket
Указанный бакет не существует.
404 Not Found
Client
NoSuchKey
Указанный ключ не существует.
404 Not Found
Client
NoSuchUpload
Указанная многокомпонентная загрузка не существует. Возможно, что идентификатор загрузки неверен или что многокомпонентная загрузка была отменена или завершена.
404 Not Found
Client
NotImplemented
Предоставленный вами заголовок использует нереализованный функционал.
501 Not Implemented
Server
NotSignedUp
У вашего проекта отсутствует подписка на услуги сервиса. Перед использованием сервиса пройдите регистрацию. Для регистрации перейдите на mcs.mail.ru.
403 Forbidden
Client
OperationAborted
Конфликтующая условная операция на данный момент уже выполняется для этого ресурса. Повторите попытку.
409 Conflict
Client
RateLimit
Превышен лимит запросов к серверу. Для увеличения лимитов напишите, пожалуйста, нам https://mcs.mail.ru/help/contact-us 503 Slow Down Server
RestoreAlreadyInProgress
Восстановление объекта уже выполняется.
409 Conflict
Client
RequestTimeout
С вашего сокет-соединения в течение заданного периода тайм-аута не производились чтение с сервера или запись на сервер.
400 Bad Request
Client
RequestTimeTooSkewed
Слишком большая разница между временем запроса и временем сервера.
403 Forbidden
Client
SignatureDoesNotMatch
Подпись запроса, вычисленная нами, не совпадает с предоставленной вами подписью. Проверьте ваш секретный ключ доступа сервиса и метод создания подписи.
403 Forbidden
Client
ServiceUnavailable
Необходимо уменьшить скорость создания запросов.
503 Service Unavailable
Server
TokenRefreshRequired
Предоставленный токен необходимо обновить.
400 Bad Request
Client
TooManyBuckets
Вы попытались создать больше бакетов, чем допустимо.
400 Bad Request
Client
UnexpectedContent
Содержимое не поддерживается данным запросом.
400 Bad Request
Client
UnresolvableGrantByEmailAddress
Предоставленный вами адрес электронной почты не принадлежит ни одному существующему проекту.
400 Bad Request
Client