Состояние и коды ошибок пакетной службы
Операции 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 | Произошла неизвестная ошибка планирования. |