Status do Lote e Códigos de Erro
As operações da API REST para o serviço do Lote retornam códigos http padrão status, conforme definido nas definições de código de status HTTP/1.1.
As operações da API também podem retornar informações adicionais de erro para fornecer ao desenvolvedor mais informações sobre o erro. Por exemplo, a seguinte resposta de erro indica que um parâmetro de consulta especificado no URI de solicitação não era válido e fornece informações adicionais sobre o nome e o valor do parâmetro inválido e o motivo do erro.
{
"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"
}]
}
As seções a seguir fornecem listas de códigos de erro para o serviço de Lote:
Códigos de erro comuns da API REST
Os códigos de erro listados na tabela a seguir podem ser retornados por uma operação no serviço de Lote.
Código do erro | Código de status HTTP | Mensagem do usuário |
---|---|---|
ConditionNotMet | Sem modificação (304) | A condição especificada em cabeçalhos condicionais não foi atendida para uma operação de leitura. |
MissingRequiredHeader | Solicitação incorreta (400) | Um cabeçalho HTTP necessário não foi especificado. |
MissingRequiredProperty | Solicitação incorreta (400) | Uma propriedade necessária não foi especificada no corpo da solicitação. |
UnsupportedHeader | Solicitação incorreta (400) | Um dos cabeçalhos HTTP especificados na solicitação não tem suporte. |
UnsupportedProperty | Solicitação incorreta (400) | Uma das propriedades especificadas no corpo da solicitação não tem suporte. |
InvalidHeaderValue | Solicitação incorreta (400) | O valor fornecido para um dos cabeçalhos HTTP não estava no formato correto. |
InvalidPropertyValue | Solicitação incorreta (400) | O valor fornecido para uma propriedade no corpo da solicitação é inválido. |
MissingRequiredQueryParameter | Solicitação incorreta (400) | Um parâmetro de consulta necessário não foi especificado para esta solicitação. |
UnsupportedQueryParameter | Solicitação incorreta (400) | Um dos parâmetros de consulta especificados no URI de solicitação não tem suporte. |
InvalidQueryParameterValue | Solicitação incorreta (400) | Um valor inválido foi especificado para um dos parâmetros de consulta no URI de solicitação. |
OutOfRangeQueryParameterValue | Solicitação incorreta (400) | Um parâmetro de consulta especificado no URI de solicitação está fora do intervalo. |
RequestUrlFailedToParse | Solicitação incorreta (400) | Não foi possível analisar a URL na solicitação. |
InvalidUri | Solicitação incorreta (400) | O URI solicitado não representa nenhum recurso no servidor. |
InvalidHttpVerb | Solicitação incorreta (400) | O verbo HTTP especificado não foi reconhecido pelo servidor. |
EmptyMetadataKey | Solicitação incorreta (400) | A chave para um dos pares chave de metadados-valor está vazio. |
InvalidRequestBody | Solicitação incorreta (400) | O Corpo da Solicitação especificado não é sintaticamente válido. |
OutOfRangeInput | Solicitação incorreta (400) | Uma das entradas da solicitação está fora do intervalo. |
InvalidAuthenticationInfo | Solicitação incorreta (400) | As informações de autenticação não foram fornecidas no formato correto. Verifique o valor do cabeçalho Authorization . |
InvalidInput | Solicitação incorreta (400) | Uma das entradas de solicitação não é válida. |
InvalidMetadata | Solicitação incorreta (400) | Os metadados especificados são inválidos. Eles incluem caracteres que não são permitidos. |
MetadataTooLarge | Solicitação incorreta (400) | O tamanho dos metadados especificados excede o tamanho máximo permitido. |
MultipleConditionHeadersNotSupported | Solicitação incorreta (400) | Vários cabeçalhos de condição não têm suporte. |
AuthenticationFailed | Proibido (403) | Falha no servidor ao autenticar a solicitação. Verifique se o valor do cabeçalho Authorization está formado corretamente e inclui a assinatura. |
InsufficientAccountPermissions | Proibido (403) | A conta que está sendo acessada não tem permissões suficientes para executar essa operação. |
AccountIsDisabled | Proibido (403) | A conta especificada está desabilitada. |
ResourceNotFound | Não encontrado (404) | O recurso especificado não existe. |
UnsupportedHttpVerb | Método não permitido (405) | O recurso não oferece suporte ao verbo HTTP especificado. |
MissingContentLengthHeader | Comprimento Obrigatório (411) | O cabeçalho Content-Length não foi especificado. |
ConditionNotMet | Falha na Pré-condição (412) | A condição especificada em cabeçalhos condicionais não foi atendida para uma operação de gravação. |
RequestBodyTooLarge | Entidade de solicitação muito grande (413) | O tamanho do corpo da solicitação excede o tamanho máximo permitido. |
InvalidRange | Intervalo solicitado não satisfatório (416) | O intervalo especificado não é válido para o tamanho atual do recurso. |
InternalError | Erro interno do servidor (500) | O servidor encontrou um erro interno. Tente novamente a solicitação. |
OperationTimedOut | Erro interno do servidor (500) | A operação não pôde ser concluída dentro do tempo permitido ou do número máximo de tentativas possível. |
ServerBusy | Serviço não disponível (503) | Atualmente, o servidor não pode receber solicitações. Tente novamente a sua solicitação. |
Códigos de erro do serviço de Lote
Os códigos de erro listados na tabela a seguir podem ser retornados por uma operação no serviço de Lote.
Código do erro | Código de status HTTP | Mensagem do usuário |
---|---|---|
UnsupportedRequestVersion | BadRequest (400) | Não há suporte especificado para a versão de solicitação. |
InvalidAutoScalingSettings | BadRequest (400) | As configurações de dimensionamento automático especificadas não são válidas. |
AutoScalingFormulaSyntaxError | BadRequest (400) | A fórmula de dimensionamento automático especificada tem um erro de sintaxe. |
AutoScalingFormulaTooLong | BadRequest (400) | A fórmula de dimensionamento automático especificada excede o limite de comprimento. |
OSVersionNotFound | BadRequest (400) | A versão do sistema operacional especificada não existe. |
OSVersionDisabled | BadRequest (400) | A versão do sistema operacional especificada está desabilitada. |
OSVersionExpired | BadRequest (400) | A versão do sistema operacional especificada expirou. |
PoolVersionEqualsUpgradeVersion | BadRequest (400) | O pool já está com a versão especificada. |
PoolNotEligibleForOSVersionUpgrade | BadRequest (400) | O pool especificado não está qualificado para atualização da versão do sistema operacional. |
PoolNotFound | NotFound (404) | O pool especificado não existe. |
NodeNotFound | NotFound (404) | O nó especificado não existe. |
JobScheduleNotFound | NotFound (404) | A agenda de trabalho especificada não existe. |
JobNotFound | NotFound (404) | O trabalho especificado não existe. |
TaskNotFound | NotFound (404) | A tarefa especificada não existe. |
FileNotFound | NotFound (404) | O arquivo especificado não existe. |
NodeUserNotFound | NotFound (404) | O usuário do nó especificado não existe. |
CertificateNotFound | NotFound (404) | O certificado especificado não existe. |
JobPreparationTaskNotRunOnNode | NotFound (404) | A tarefa de preparação do trabalho não foi executada no nó especificado. |
JobReleaseTaskNotRunOnNode | NotFound (404) | A tarefa de liberação do trabalho não foi executada no nó especificado. |
NodeAgentSKUNotFound | NotFound (404) | O SKU do Agente de Nó especificado não existe. |
OperationInvalidForCurrentState | Conflito (409) | A operação especificada não é válida para o estado atual do recurso. |
PoolBeingDeleted | Conflito (409) | O pool especificado foi marcado para exclusão e está sendo recuperado. |
PoolBeingResized | Conflito (409) | O pool especificado está sendo redimensionado |
PoolBeingCreated | Conflito (409) | O pool especificado está sendo criado. |
NodeBeingCreated | Conflito (409) | O nó especificado está sendo criado |
NodeBeingStarted | Conflito (409) | O nó especificado está sendo iniciado |
NodeBeingReimaged | Conflito (409) | O nó especificado está sendo recriado |
NodeBeingRebooted | Conflito (409) | O nó especificado está sendo reinicializado |
NodeStateUnusable | Conflito (409) | O estado do nó especificado é inutilizável |
JobScheduleBeingTerminated | Conflito (409) | A agenda de trabalho especificada está sendo encerrada. |
JobScheduleBeingDeleted | Conflito (409) | O agendamento de trabalho especificado foi marcado para exclusão e está sendo recuperado. |
CertificateBeingDeleted | Conflito (409) | O certificado especificado foi marcado para exclusão e está sendo excluído. |
PoolExists | Conflito (409) | O pool especificado já existe. |
JobScheduleExists | Conflito (409) | A agenda de trabalho especificada já existe. |
NodeUserExists | Conflito (409) | O usuário do nó especificado já existe. |
JobExists | Conflito (409) | O trabalho especificado já existe. |
NodeUserExists | Conflito (409) | O usuário do nó especificado já existe. |
CertificateExists | Conflito (409) | O certificado especificado já existe. |
JobScheduleDisabled | Conflito (409) | A agenda de trabalho especificada está desabilitada. |
JobScheduleCompleted | Conflito (409) | A agenda de trabalho especificada já está em estado concluído. |
JobBeingTerminated | Conflito (409) | O trabalho especificado está sendo encerrado. |
JobBeingDeleted | Conflito (409) | O trabalho especificado foi marcado para exclusão e está sendo coletado como lixo. |
Trabalho Desabilitado | Conflito (409) | O trabalho especificado está desabilitado. |
JobCompleted | Conflito (409) | O trabalho especificado já está em um estado concluído. |
JobNotActive | Conflito (409) | O trabalho especificado não está no estado ativo. |
TaskExists | Conflito (409) | A tarefa especificada já existe. |
TaskCompleted | Conflito (409) | A tarefa especificada já está em um estado concluído. |
TaskNotCompleted | Conflito (409) | A tarefa especificada não está em um estado concluído e a operação solicitada só pode ser executada em tarefas concluídas. |
TaskSucceededed | Conflito (409) | A tarefa especificada já foi concluída com êxito e a operação solicitada não pode ser executada em tarefas bem-sucedidas. |
TaskFilesUnavailable | Conflito (409) | Os arquivos da tarefa especificada não estão disponíveis. |
TaskFilesCleanedup | Conflito (409) | Os arquivos da tarefa especificada estão limpos. |
ActiveJobAndScheduleQuotaReached | Conflito (409) | O trabalho ativo e a cota de agendamento da conta foram atingidos. |
PoolQuotaReached | Conflito (409) | A cota do pool para a conta foi atingida. |
UpgradePoolVersionConflict | Conflito (409) | O pool já está atualizando para uma versão diferente. |
JobPreparationTaskNotSpecified | Conflito (409) | O trabalho especificado não tem tarefa de preparação de trabalho. |
JobReleaseTaskNotSpecified | Conflito (409) | O trabalho especificado não tem tarefa de liberação de trabalho. |
TaskIdSameAsJobPreparationTask | Conflito (409) | A ID de tarefa especificada é igual à tarefa de preparação do trabalho. |
TaskIdSameAsJobReleaseTask | Conflito (409) | A ID da tarefa especificada é a mesma da tarefa de liberação do trabalho. |
JobWithSameIdExists | Conflito (409) | Existe um trabalho com a ID de agendamento de trabalho especificada. A agenda de trabalho e trabalho não pode ter a mesma ID. |
JobScheduleWithSameIdExists | Conflito (409) | Existe uma agenda de trabalho com a ID de trabalho especificada. A agenda de trabalho e trabalho não pode ter a mesma ID. |
NodeAlreadyInTargetSchedulingState | Conflito (409) | O nó especificado já está no estado de agendamento de destino. |
OperationNotValidOnNode | Conflito (409) | A operação especificada não é válida no nó. |
OperationNotValidOnPool | Conflito (409) | A operação especificada não é válida no pool. |
IOError | Proibido (403) | Ocorreu um erro de E/S ao acessar o recurso especificado. |
TooManyEnableAutoScaleRequests | ServiceUnavailable (503) | Muitas solicitações de Habilitar Dimensionamento Automático do Pool são emitidas no pool. |
ApplicationNotFound | Não encontrado (404) | O aplicativo especificado não existe. |
InvalidApplicationPackageReferences | Conflito (409) | Não foi possível atender a uma ou mais referências de pacote de aplicativos. Isso ocorrerá se a ID ou a versão do aplicativo não existir ou não estiver ativa ou se a referência não tiver especificado uma versão e não houver nenhuma versão padrão configurada. |
TaskDependenciesNotSpecifiedOnJob | Solicitação incorreta (400) | Uma tarefa foi especificada como dependendo de outras tarefas, mas o trabalho não especificou que usaria dependências de tarefa. |
TaskDependencyListTooLong | Solicitação incorreta (400) | Uma tarefa foi especificada como dependendo de outras tarefas, mas a lista de dependências era muito longa para ser armazenada. O comprimento total armazenado é limitado a 64.000 caracteres; o comprimento total das IDs de tarefa deve ser um pouco menor do que isso para permitir a sobrecarga de armazenamento interno. Se você encontrar esse erro, considere usar dependências de intervalo de tarefas. |
TaskDependencyRangesTooLong | Solicitação incorreta (400) | Uma tarefa foi especificada como dependendo de vários intervalos de IDs de tarefa e a lista de intervalos era muito longa para ser armazenada. Observe que o problema não é com o tamanho dos intervalos, mas com o número de intervalos. |
Códigos de erro de agendamento de trabalho/tarefa
Se o serviço do Lote encontrar um erro ao iniciar uma tarefa em um nó, ele marcará a tarefa como concluída. As informações de erro são retornadas dentro de um failureInfo
elemento no corpo da resposta de Listar os arquivos associados a uma tarefa e Obter informações sobre as APIs de uma tarefa .
Da mesma forma, se o serviço de Lote encontra um erro ao iniciar o trabalho, ele marca o trabalho como concluído. Essas informações de erro de agendamento são retornadas dentro de um schedulingError
elemento no corpo da resposta de Obter informações sobre um trabalho em APIs do Lote.
A tabela a seguir fornece a lista de categorias para erros de agendamento de tarefas.
Categoria | Descrição |
---|---|
UserError | Erros na especificação da tarefa fornecida pelo usuário. |
ServerError | Erros encontrados pelo serviço de Lote que o impedem de agendar a tarefa. |
Veja abaixo um exemplo de erro de pré-processamento retornado pelo serviço do Lote.
{
"preProcessingError": {
"category": "UserError",
"code": "BlobNotFound",
"message": "The specified blob does not exist.",
"values": {
"name": "FilePath",
"value": "myfile.txt"
}
}
}
A tabela a seguir fornece a lista de códigos de erro de agendamento de trabalho que podem ser retornados pelo serviço lote.
Código do erro | Categoria | Mensagem do usuário |
---|---|---|
InvalidCertificatesInAutoPool | UserError | As referências de certificado especificadas na especificação do pool automático não são válidas. |
AutoPoolCreationFailedWithQuotaReached | UserError | A cota de pool para a conta for atingida. |
InvalidApplicationPackageReferencesInAutoPool | UserError | Um ou mais pacotes de aplicativos especificados para o pool são inválidos. |
InvalidAutoScaleFormulaInAutoPool | UserError | As configurações de dimensionamento automático especificadas não são válidas. |
InvalidAutoPoolSettings | UserError | As configurações de autopool especificadas não são válidas. |
JobBeingTerminated | UserError | A tarefa não pode ser iniciada porque o trabalho associado está sendo encerrado. |
Unknown | ServerError | Ocorreu um erro de agendamento desconhecido. |
A tabela a seguir fornece a lista de códigos de erro de agendamento de tarefas que podem ser retornados pelo serviço lote.
Código do erro | Categoria | Mensagem do usuário |
---|---|---|
BlobNotFound | UserError | Um dos Blobs do Azure especificados não foi encontrado. |
BlobAccessDenied | UserError | O acesso a um dos Blobs do Azure especificados foi negado. |
BlobDownloadTimedOut | ServerError | Tempo limite encontrado durante o download de um dos Blobs do Azure especificados. |
BlobDownloadMiscError | ServerError | Erro diverso encontrado ao baixar um dos Blobs do Azure especificados. |
ResourceDirectoryCreateFailed | ServerError | Falha ao criar o diretório de recursos para a tarefa. |
ResourceFileCreateFailed | ServerError | Falha ao criar o arquivo de recurso. |
ResourceFileWriteFailed | ServerError | Falha ao gravar o arquivo de recurso. |
CommandProgramNotFound | UserError | O programa de comando especificado não foi encontrado. |
CommandLaunchFailed | UserError | Falha ao iniciar a linha de comando especificada. |
TaskEnded | UserError | A tarefa foi encerrada pela solicitação do usuário. |
MaxInternalRetryCountReached | UserError | A tarefa especificada atingiu a contagem máxima de repetições internas. |
TaskSchedulingConstraintFailed | UserError | A tarefa não pode ser agendada no pool associado ao trabalho |
DiskFull | ServerError | Não há espaço em disco suficiente no nó que foi selecionado para executar a tarefa. |
Unknown | ServerError | Ocorreu um erro de agendamento desconhecido. |