Поделиться через


Состояние и коды ошибок пакетной службы

Операции REST API для пакетной службы возвращают стандартные коды состояния HTTP, как определено в определениях кода состояния HTTP/1.1.

Операции API могут также возвращать дополнительные сведения об ошибке, чтобы предоставить разработчику больше информации об ошибке. Например, следующий ответ со сведениями об ошибке сообщает, что параметр запроса, указанный в URI запроса, был недопустимым, и предоставляет дополнительные сведения о недопустимом имени и значении параметра и причине ошибки.

{
  "code": "InvalidQueryParameterValue",
  "message": {
      "lang": "en-us",
      "value": "Value for one of the query parameters specified in the request URI is invalid"
  },
  "values": [{
      "key": "QueryParameterName",
      "value": "state"
  }, {
      "key": "QueryParameterValue",
      "value": "deleted"
  }, {
      "key": "Reason",
      "value": "invalid state"
  }]
}

В следующих разделах приведены списки кодов ошибок для пакетной службы.

Общие коды ошибок API-интерфейса REST

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

Код ошибки Код состояния HTTP Сообщение для пользователя
ConditionNotMet Не изменено (304) Условие, указанное в заголовках условий, не выполнено для считываемой операции.
MissingRequiredHeader Неправильный запрос (400) Не указан обязательный заголовок HTTP.
MissingRequiredProperty Неправильный запрос (400) В тексте запроса не указано обязательное свойство.
UnsupportedHeader Неправильный запрос (400) Не поддерживается один из указанных заголовков HTTP в запросе.
UnsupportedProperty Неправильный запрос (400) Одно из свойств, указанных в тексте запроса, не поддерживается.
InvalidHeaderValue Неправильный запрос (400) Значение одного из заголовков HTTP было указано в неверном формате.
InvalidPropertyValue Неправильный запрос (400) Недопустимое значение одного из свойств в тексте запроса.
MissingRequiredQueryParameter Неправильный запрос (400) Обязательный параметр запроса не был указан для этого запроса.
UnsupportedQueryParameter Неправильный запрос (400) Не поддерживается один из параметров запроса, указанных в URI запроса.
InvalidQueryParameterValue Неправильный запрос (400) У одного из параметров запроса в URI запроса было указано недопустимое значение.
OutOfRangeQueryParameterValue Неправильный запрос (400) Параметр запроса, указанный в URI запроса, находится за пределами допустимого диапазона.
RequestUrlFailedToParse Неправильный запрос (400) Не удалось выполнить синтаксический анализ URL-адреса в запросе.
InvalidUri Неправильный запрос (400) Запрошенный URI не представляет ни одного из ресурсов на сервере.
InvalidHttpVerb Неправильный запрос (400) Указанная HTTP-команда не была распознана сервером.
EmptyMetadataKey Неправильный запрос (400) Пустой ключ в одной из пар «ключ-значение» метаданных.
InvalidRequestBody Неправильный запрос (400) Указанный текст запроса имеет недопустимый синтаксис.
OutOfRangeInput Неправильный запрос (400) Некоторые из входных данных запроса выходят за пределы допустимого диапазона.
InvalidAuthenticationInfo Неправильный запрос (400) Сведения о проверке подлинности представлены в недопустимом формате. Проверьте значение заголовка авторизации .
InvalidInput Неправильный запрос (400) Недопустимые входные данные в запросе.
InvalidMetadata Неправильный запрос (400) Указанные метаданные являются недопустимыми. Они содержат запрещенные символы.
MetadataTooLarge Неправильный запрос (400) Размер указанных метаданных превышает максимально допустимый размер.
MultipleConditionHeadersNotSupported Неправильный запрос (400) Несколько из заголовков условий не поддерживаются.
AuthenticationFailed Запрещено (403) Серверу не удалось проверить подлинность запроса. Убедитесь, что значение заголовка авторизации правильно сформировано и содержит сигнатуру.
InsufficientAccountPermissions Запрещено (403) Учетная запись, к которой выполняется обращение, имеет недостаточно разрешений на выполнение этой операции.
AccountIsDisabled Запрещено (403) Учетная запись отключена.
ResourceNotFound Не найдено (404) Указанный ресурс не существует.
UnsupportedHttpVerb Метод не разрешен (405) Ресурс не поддерживает указанная HTTP-команда.
MissingContentLengthHeader Требуется длина (411) Заголовок Content-Length не указан.
ConditionNotMet Не выполняется обязательное условие (412) Условие, указанное в заголовках условий, не выполняется для операции записи.
RequestBodyTooLarge Слишком большая сущность запроса (413) Размер текста запроса превышает максимально допустимый размер.
InvalidRange Запрошенный диапазон невыполним (416) Указанный диапазон недопустим для текущего размера ресурса.
InternalError Внутренняя ошибка сервера (500) Сервер обнаружил внутреннюю ошибку. Повторите запрос.
OperationTimedOut Внутренняя ошибка сервера (500) Не удалось выполнить операцию за отведенное время.
ServerBusy Служба недоступна (503) Серверу не удается получить запросы. Повторите запрос.

Коды ошибок пакетной службы

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

Код ошибки Код состояния HTTP Сообщение для пользователя
UnsupportedRequestVersion BadRequest (400) Указанная версия запроса не поддерживается.
InvalidAutoScalingSettings BadRequest (400) Указаны недопустимые параметры автоматического масштабирования.
AutoScalingFormulaSyntaxError BadRequest (400) В указанной формуле автоматического масштабирования есть синтаксическая ошибка.
AutoScalingFormulaTooLong BadRequest (400) Указанная формула автоматического масштабирования превышает ограничение на длину.
OSVersionNotFound BadRequest (400) Указанная версия операционной системы не существует.
OSVersionDisabled BadRequest (400) Указанная версия операционной системы отключена.
OSVersionExpired BadRequest (400) Срок действия указанной версии операционной системы истек.
PoolVersionEqualsUpgradeVersion BadRequest (400) Пул уже имеет указанную версию.
PoolNotEligibleForOSVersionUpgrade BadRequest (400) Указанный пул не подходит для обновления версии ОС.
PoolNotFound NotFound (404) Указанный пул не существует.
NodeNotFound NotFound (404) Указанный узел не существует.
JobScheduleNotFound NotFound (404) Указанное расписание задания не существует.
JobNotFound NotFound (404) Указанное задание не существует.
TaskNotFound NotFound (404) Указанная задача не существует.
FileNotFound NotFound (404) Указанный файл не существует.
NodeUserNotFound NotFound (404) Указанный пользователь узла не существует.
CertificateNotFound NotFound (404) Указанный сертификат не существует.
JobPreparationTaskNotRunOnNode NotFound (404) Задача подготовки задания не выполнялась на указанном узле.
JobReleaseTaskNotRunOnNode NotFound (404) Задача выпуска задания не выполнялась на указанном узле.
NodeAgentSKUNotFound NotFound (404) Указанный номер SKU агента узла не существует.
OperationInvalidForCurrentState Конфликт (409) Указанная операция недопустима для текущего состояния ресурса.
PoolBeingDeleted Конфликт (409) Указанный пул была помечен для удаления и освобождается.
PoolBeingResized Конфликт (409) Размер указанного пула изменяется.
PoolBeingCreated Конфликт (409) Указанный пул создается.
NodeBeingCreated Конфликт (409) Создается указанный узел
NodeBeingStarted Конфликт (409) Запускается указанный узел
NodeBeingReimaged Конфликт (409) Переосмыслен указанный узел
NodeBeingRebooted Конфликт (409) Указанный узел перезагружается
NodeStateUnusable Конфликт (409) Состояние указанного узла непригодным для использования
JobScheduleBeingTerminated Конфликт (409) Указанное расписание задания завершается.
JobScheduleBeingDeleted Конфликт (409) Указанное расписание задания помечено для удаления и освобождается.
CertificateBeingDeleted Конфликт (409) Указанный сертификат был помечен для удаления и удаляется.
PoolExists Конфликт (409) Указанный пул уже существует.
JobScheduleExists Конфликт (409) Указанное расписание задания уже существует.
NodeUserExists Конфликт (409) Указанный пользователь узла уже существует.
JobExists Конфликт (409) Указанное задание уже существует.
NodeUserExists Конфликт (409) Указанный пользователь узла уже существует.
CertificateExists Конфликт (409) Указанный сертификат уже существует.
JobScheduleDisabled Конфликт (409) Указанное расписание задания отключено.
JobScheduleCompleted Конфликт (409) Указанное расписание задания уже находится в состоянии завершения.
JobBeingTerminated Конфликт (409) Указанное задание прекращается.
JobBeingDeleted Конфликт (409) Указанное задание было помечено для удаления и обрабатывается сборщиком мусора.
JobDisabled Конфликт (409) Указанное задание отключено.
JobCompleted Конфликт (409) Указанное задание уже завершено.
JobNotActive Конфликт (409) Указанное задание не находится в активном состоянии.
TaskExists Конфликт (409) Указанная задача уже существует.
TaskCompleted Конфликт (409) Указанная задача уже завершена.
TaskNotCompleted Конфликт (409) Указанная задача не находится в состоянии завершения, и запрошенная операция может быть выполнена только для завершенных задач.
TaskSucceeded Конфликт (409) Указанная задача уже успешно завершена, и запрошенная операция не может быть выполнена для успешных задач.
TaskFilesUnavailable Конфликт (409) Файлы указанной задачи недоступны.
TaskFilesCleanedup Конфликт (409) Файлы указанной задачи очищаются.
ActiveJobAndScheduleQuotaReached Конфликт (409) Достигнута квота активного задания и расписания для учетной записи.
PoolQuotaReached Конфликт (409) Достигнута квота пула для учетной записи.
UpgradePoolVersionConflict Конфликт (409) Пул уже обновляется до другой версии.
JobPreparationTaskNotSpecified Конфликт (409) Указанное задание не имеет задачи подготовки задания.
JobReleaseTaskNotSpecified Конфликт (409) Указанное задание не имеет задачи выпуска задания.
TaskIdSameAsJobPreparationTask Конфликт (409) Указанный идентификатор задачи совпадает с задачей подготовки задания.
TaskIdSameAsJobReleaseTask Конфликт (409) Указанный идентификатор задачи совпадает с задачей освобождения задания.
JobWithSameIdExists Конфликт (409) Задание с указанным идентификатором расписания задания существует. Задание и расписание заданий не могут иметь одинаковый идентификатор.
JobScheduleWithSameIdExists Конфликт (409) Существует расписание задания с указанным идентификатором задания. Задание и расписание заданий не могут иметь одинаковый идентификатор.
NodeAlreadyInTargetSchedulingState Конфликт (409) Указанный узел уже находится в целевом состоянии планирования.
OperationNotValidOnNode Конфликт (409) Указанная операция недопустима на узле.
OperationNotValidOnPool Конфликт (409) Указанная операция недопустима в пуле.
IOError Запрещено (403) Произошла ошибка ввода-вывода при доступе к указанному ресурсу.
TooManyEnableAutoScaleRequests ServiceUnavailable (503) В пуле отправляется слишком много запросов включить автомасштабирование пула.
ApplicationNotFound Не найдено (404) Указанное приложение не существует.
InvalidApplicationPackageReferences Конфликт (409) Не удалось выполнить одну или несколько ссылок на пакеты приложений. Это происходит, если идентификатор или версия приложения не существует или не активен, или если ссылка не указала версию и не настроена версия по умолчанию.
TaskDependenciesNotSpecifiedOnJob Неправильный запрос (400) Задача была указана как в зависимости от других задач, но задание не указало, что оно будет использовать зависимости задач.
TaskDependencyListTooLong Неправильный запрос (400) Задача была указана как в зависимости от других задач, но список зависимостей был слишком длинным для хранения. Общая хранимая длина ограничена 64000 символами; Общая длина идентификаторов задач должна быть немного меньше этой, чтобы обеспечить затраты на внутреннее хранилище. При возникновении этой ошибки рассмотрите возможность использования зависимостей диапазона задач.
TaskDependencyRangesTooLong Неправильный запрос (400) Задача была указана как в зависимости от нескольких диапазонов идентификаторов задач, а список диапазонов был слишком длинным для хранения. Обратите внимание, что проблема заключается не в размере диапазонов, а в количестве диапазонов.

Коды ошибок планирования задания или задачи

Если пакетная служба обнаруживает ошибку при запуске задачи на узле, она помечает задачу как завершенную. Сведения об ошибке возвращаются в элементе failureInfo в тексте ответа в разделе Перечисление файлов, связанных с задачей и Получение сведений об API задачи .

Аналогично, если пакетная служба обнаруживает ошибку во время запуска задания, она помечает это задание как завершенное. Эти сведения об ошибке планирования возвращаются в schedulingError элементе в тексте ответа элемента Получение сведений о задании в API пакетной службы .

В следующей таблице предоставлен список категорий для ошибок планирования задач.

Категория Описание
UserError Ошибки в спецификации задачи, предоставленной пользователем.
ServerError Ошибки, обнаруженные пакетной службой, которые препятствуют планированию задачи.

Ниже приведен пример ошибки предварительной обработки, возвращаемой пакетной службой.

{
  "preProcessingError": {
    "category": "UserError",
    "code": "BlobNotFound",
    "message": "The specified blob does not exist.",
    "values": {
      "name": "FilePath",
      "value": "myfile.txt"
    }
  }
}

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

Код ошибки Категория Сообщение для пользователя
InvalidCertificatesInAutoPool UserError Недопустимые ссылки на сертификат в спецификации автоматического пула.
AutoPoolCreationFailedWithQuotaReached UserError Достигнута квота пула для учетной записи.
InvalidApplicationPackageReferencesInAutoPool UserError Один или несколько пакетов приложений, указанных для пула, являются недопустимыми.
InvalidAutoScaleFormulaInAutoPool UserError Указаны недопустимые параметры автоматического масштабирования.
InvalidAutoPoolSettings UserError Указанные параметры автопополя являются недопустимыми.
JobBeingTerminated UserError Не удается запустить задачу, так как связанное задание завершается.
Неизвестно ServerError Произошла неизвестная ошибка планирования.

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

Код ошибки Категория Сообщение для пользователя
BlobNotFound UserError Один из указанных BLOB-объектов Azure не найден.
BlobAccessDenied UserError Доступ к одному из указанных BLOB-объектов Azure запрещен.
BlobDownloadTimedOut ServerError Истекло время ожидания при скачивании одного из указанных BLOB-объектов Azure.
BlobDownloadMiscError ServerError При скачивании одного из указанных BLOB-объектов Azure возникла другая ошибка.
ResourceDirectoryCreateFailed ServerError Произошла ошибка при создании каталога ресурсов для задачи.
ResourceFileCreateFailed ServerError Произошла ошибка при создании файла ресурсов.
ResourceFileWriteFailed ServerError Произошла ошибка при записи файла ресурсов.
CommandProgramNotFound UserError Указанная командная программа не найдена.
CommandLaunchFailed UserError Не удалось запустить указанную командную строку.
TaskEnded UserError Задача была завершена запросом пользователя.
MaxInternalRetryCountReached UserError Для указанной задачи достигнуто максимальное число внутренних повторных попыток.
TaskSchedulingConstraintFailed UserError Невозможно запланировать задачу в пуле, связанном с заданием
DiskFull ServerError На узле, выбранном для выполнения задачи, недостаточно места на диске.
Неизвестно ServerError Произошла неизвестная ошибка планирования.