Partilhar via


Estado do Batch e Códigos de Erro

As operações da API REST para o serviço Batch devolvem códigos de estado HTTP padrão, conforme definido nas Definições de Código de Estado HTTP/1.1.

As operações de API também podem devolver informações de erro adicionais para fornecer ao programador mais informações sobre o erro. Por exemplo, a seguinte resposta de erro indica que um parâmetro de consulta especificado no URI do pedido era invá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 secções seguintes fornecem listas de códigos de erro para o serviço Batch:

Códigos de Erro comuns da API REST

Os códigos de erro listados na tabela seguinte podem ser devolvidos por uma operação no serviço Batch.

Código de erro Código de estado de HTTP Mensagem de utilizador
ConditionNotMet Não Modificado (304) A condição especificada nos cabeçalhos condicionais não foi cumprida para uma operação de leitura.
MissingRequiredHeader Pedido Incorreto (400) Não foi especificado um cabeçalho HTTP necessário.
MissingRequiredProperty Pedido Incorreto (400) Não foi especificada uma propriedade necessária no corpo do pedido.
Não SuportadoHeader Pedido Incorreto (400) Um dos cabeçalhos HTTP especificados no pedido não é suportado.
Não SuportadoProperty Pedido Incorreto (400) Uma das propriedades especificadas no corpo do pedido não é suportada.
InvalidHeaderValue Pedido Incorreto (400) O valor fornecido para um dos cabeçalhos HTTP não estava no formato correto.
InvalidPropertyValue Pedido Incorreto (400) O valor fornecido para uma das propriedades no corpo do pedido é inválido.
MissingRequiredQueryParameter Pedido Incorreto (400) Não foi especificado um parâmetro de consulta necessário para este pedido.
UnsupportedQueryParameter Pedido Incorreto (400) Um dos parâmetros de consulta especificados no URI do pedido não é suportado.
InvalidQueryParameterValue Pedido Incorreto (400) Foi especificado um valor inválido para um dos parâmetros de consulta no URI do pedido.
OutOfRangeQueryParameterValue Pedido Incorreto (400) Um parâmetro de consulta especificado no URI do pedido está fora do intervalo permitido.
RequestUrlFailedToParse Pedido Incorreto (400) Não foi possível analisar o URL no pedido.
InvalidUri Pedido Incorreto (400) O URI pedido não representa nenhum recurso no servidor.
InválidoHttpVerb Pedido Incorreto (400) O verbo HTTP especificado não foi reconhecido pelo servidor.
EmptyMetadataKey Pedido Incorreto (400) A chave para um dos pares chave-valor de metadados está vazia.
InvalidRequestBody Pedido Incorreto (400) O Corpo do Pedido especificado não é sintaticamente válido.
OutOfRangeInput Pedido Incorreto (400) Uma das entradas do pedido está fora do intervalo.
InvalidAuthenticationInfo Pedido Incorreto (400) As informações de autenticação não foram fornecidas no formato correto. Verifique o valor do cabeçalho Autorização .
InvalidInput Pedido Incorreto (400) Uma das entradas do pedido não é válida.
InvalidMetadata Pedido Incorreto (400) Os metadados especificados são inválidos. Inclui carateres que não são permitidos.
MetadataTooLarge Pedido Incorreto (400) O tamanho dos metadados especificados excede o tamanho máximo permitido.
MultipleConditionHeadersNotSupported Pedido Incorreto (400) Não são suportados vários cabeçalhos de condição.
AuthenticationFailed Proibido (403) O servidor não conseguiu autenticar o pedido. Verifique se o valor do cabeçalho autorização é formado corretamente e inclui a assinatura.
InsufficientAccountPermissions Proibido (403) A conta a ser acedida não tem permissões suficientes para executar esta operação.
AccountIsDisabled Proibido (403) A conta especificada está desativada.
ResourceNotFound Não Encontrado (404) O recurso especificado não existe.
Não suportadoHttpVerb Método Não Permitido (405) O recurso não suporta o verbo HTTP especificado.
MissingContentLengthHeader Comprimento Necessário (411) O cabeçalho Content-Length não foi especificado.
ConditionNotMet Falha na Pré-condição (412) A condição especificada nos cabeçalhos condicionais não foi cumprida para uma operação de escrita.
RequestBodyTooLarge Entidade do Pedido Demasiado Grande (413) O tamanho do corpo do pedido excede o tamanho máximo permitido.
InvalidRange Intervalo Pedido Não Satisfiable (416) O intervalo especificado é inválido para o tamanho atual do recurso.
InternalError Erro interno do Servidor (500) O servidor encontrou um erro interno. Repita o pedido.
OperationTimedOut Erro interno do Servidor (500) Não foi possível concluir a operação dentro do tempo permitido.
ServerBusy Serviço Indisponível (503) Atualmente, o servidor não consegue receber pedidos. Tente novamente o seu pedido.

Códigos de Erro do Serviço Batch

Os códigos de erro listados na tabela seguinte podem ser devolvidos por uma operação no serviço Batch.

Código de erro Código de estado de HTTP Mensagem de utilizador
UnsupportedRequestVersion BadRequest (400) A versão do pedido especificado não é suportada.
InvalidAutoScalingSettings BadRequest (400) As definiçõ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 comprimentos.
OSVersionNotFound BadRequest (400) A Versão do SO especificada não existe.
OSVersionDisabled BadRequest (400) A Versão do SO especificada está desativada.
OSVersionExpired BadRequest (400) A Versão do SO especificada expirou.
PoolVersionEqualsUpgradeVersion BadRequest (400) O conjunto já está com a versão especificada.
PoolNotEligibleForOSVersionUpgrade BadRequest (400) O conjunto especificado não é elegível para atualização da Versão do SO.
PoolNotFound NotFound (404) O conjunto especificado não existe.
NodeNotFound NotFound (404) O nó especificado não existe.
JobScheduleNotFound NotFound (404) A agenda de tarefas especificada não existe.
JobNotFound NotFound (404) A tarefa especificada não existe.
TaskNotFound NotFound (404) A tarefa especificada não existe.
FicheiroNotFound NotFound (404) O ficheiro especificado não existe.
NodeUserNotFound NotFound (404) O utilizador do nó especificado não existe.
CertificateNotFound NotFound (404) O certificado especificado não existe.
JobPreparationTaskNotRunOnNode NotFound (404) A tarefa de preparação da tarefa não foi executada no nó especificado.
JobReleaseTaskNotRunOnNode NotFound (404) A tarefa de lançamento da tarefa 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 conjunto especificado foi marcado para eliminação e está a ser recuperado.
PoolBeingResized Conflito (409) O conjunto especificado está a ser redimensionado
PoolBeingCreated Conflito (409) O conjunto especificado está a ser criado.
NodeBeingCreated Conflito (409) O nó especificado está a ser criado
NodeBeingStarted Conflito (409) O nó especificado está a ser iniciado
NodeBeingReimaged Conflito (409) O nó especificado está a ser recriado
NodeBeingRebooted Conflito (409) O nó especificado está a ser reiniciado
NodeStateUnusable Conflito (409) O estado do nó especificado é inutilizável
JobScheduleBeingTerminated Conflito (409) A agenda de tarefas especificada está a ser terminada.
JobScheduleBeingDeleted Conflito (409) O agendamento de tarefas especificado foi marcado para eliminação e está a ser recuperado.
CertificateBeingDeleted Conflito (409) O certificado especificado foi marcado para eliminação e está a ser eliminado.
PoolExists Conflito (409) O conjunto especificado já existe.
JobScheduleExists Conflito (409) A agenda de tarefas especificada já existe.
NodeUserExists Conflito (409) O utilizador do nó especificado já existe.
JobExists Conflito (409) A tarefa especificada já existe.
NodeUserExists Conflito (409) O utilizador do nó especificado já existe.
CertificateExists Conflito (409) O certificado especificado já existe.
JobScheduleDisabled Conflito (409) A agenda de tarefas especificada está desativada.
JobScheduleCompleted Conflito (409) O agendamento de tarefas especificado já está no estado concluído.
JobBeingTerminated Conflito (409) A tarefa especificada está a ser terminada.
JobBeingDeleted Conflito (409) A tarefa especificada foi marcada para eliminação e está a ser recolhida lixo.
JobDisabled Conflito (409) A tarefa especificada está desativada.
Tarefa Concluída Conflito (409) A tarefa especificada já está num estado concluído.
JobNotActive Conflito (409) A tarefa especificada não está no estado ativo.
TaskExists Conflito (409) A tarefa especificada já existe.
Tarefas Concluídos Conflito (409) A tarefa especificada já está num estado concluído.
TaskNotCompleted Conflito (409) A tarefa especificada não está num estado concluído e a operação pedida só pode ser efetuada em tarefas concluídas.
TarefaScedidas Conflito (409) A tarefa especificada já foi concluída com êxito e não é possível efetuar a operação pedida em tarefas com êxito.
TaskFilesUnavailable Conflito (409) Os ficheiros da tarefa especificada não estão disponíveis.
TaskFilesCleanedup Conflito (409) Os ficheiros da tarefa especificada são limpos.
ActiveJobAndScheduleQuotaReached Conflito (409) A quota de tarefas ativas e agendamento para a conta foi atingida.
PoolQuotaReached Conflito (409) A quota do conjunto para a conta foi atingida.
UpgradePoolVersionConflict Conflito (409) O conjunto já está a atualizar para uma versão diferente.
JobPreparationTaskNotSpecified Conflito (409) A tarefa especificada não tem a tarefa de preparação de tarefas.
JobReleaseTaskNotSpecified Conflito (409) A tarefa especificada não tem a tarefa de lançamento da tarefa.
TaskIdSameAsJobPreparationTask Conflito (409) O ID de tarefa especificado é igual à tarefa de preparação da tarefa.
TaskIdSameAsJobReleaseTask Conflito (409) O ID de tarefa especificado é o mesmo que a tarefa de lançamento da tarefa.
JobWithSameIdExists Conflito (409) Existe uma tarefa com o ID de agendamento de tarefas especificado. O agendamento de trabalhos e trabalhos não pode ter o mesmo ID.
JobScheduleWithSameIdExists Conflito (409) Existe um horário de trabalho com o ID de tarefa especificado. O agendamento de trabalhos e trabalhos não pode ter o mesmo 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 conjunto.
IOError Proibido (403) Ocorreu um erro de E/S ao aceder ao recurso especificado.
TooManyEnableAutoScaleRequests ServiceUnavailable (503) São emitidos demasiados pedidos ativar o Dimensionamento Automático do Conjunto no conjunto.
ApplicationNotFound Não Encontrado (404) A aplicação especificada não existe.
InvalidApplicationPackageReferences Conflito (409) Não foi possível satisfazer uma ou mais referências de pacotes de aplicações. Isto ocorre se o ID ou versão da aplicação não existir ou não estiver ativo ou se a referência não tiver especificado uma versão e não existir uma versão predefinida configurada.
TaskDependenciesNotSpecifiedOnJob Pedido Incorreto (400) Uma tarefa foi especificada consoante outras tarefas, mas a tarefa não especificou que iria utilizar dependências de tarefas.
TaskDependencyListTooLong Pedido Incorreto (400) Uma tarefa foi especificada como dependendo de outras tarefas, mas a lista de dependências era demasiado longa para ser armazenada. O comprimento total armazenado está limitado a 64000 carateres; a duração total dos IDs de tarefas tem de ser ligeiramente menor do que esta para permitir a sobrecarga de armazenamento interno. Se encontrar este erro, considere utilizar dependências do intervalo de tarefas.
TaskDependencyRangesTooLong Pedido Incorreto (400) Uma tarefa foi especificada como dependendo de vários intervalos de IDs de tarefas e a lista de intervalos era demasiado longa para ser armazenada. Tenha em atenção que o problema não é com o tamanho dos intervalos, mas sim com o número de intervalos.

Códigos de Erro de Agendamento de Tarefas/Tarefas

Se o serviço Batch encontrar um erro ao iniciar uma tarefa num nó, marca a tarefa como concluída. As informações de erro são devolvidas dentro de um failureInfo elemento no corpo de resposta de Listar os ficheiros associados a uma tarefa e Obter informações sobre as APIs de tarefas .

Da mesma forma, se o serviço Batch encontrar um erro ao iniciar a tarefa, marca a tarefa como concluída. Estas informações de erro de agendamento são devolvidas dentro de um schedulingError elemento no corpo de resposta de Obter informações sobre uma tarefa nas APIs do Batch .

A tabela seguinte fornece a lista de categorias para erros de agendamento de tarefas.

Categoria Descrição
UserError Erros na especificação de tarefa fornecida pelo utilizador.
ServidorErro Erros encontrados pelo serviço Batch que o impedem de agendar a tarefa.

Segue-se um exemplo de erro de pré-processamento devolvido pelo serviço Batch.

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

A tabela seguinte fornece a lista de códigos de erro de agendamento de tarefas que podem ser devolvidos pelo serviço Batch.

Código de erro Categoria Mensagem de utilizador
InvalidCertificatesInAutoPool UserError As referências de certificado especificadas na especificação do conjunto automático não são válidas.
AutoPoolCreationFailedWithQuotaReached UserError A quota de conjunto da conta é atingida.
InvalidApplicationPackageReferencesInAutoPool UserError Um ou mais pacotes de aplicações especificados para o conjunto são inválidos.
InvalidAutoScaleFormulaInAutoPool UserError As definições de dimensionamento automático especificadas não são válidas.
InvalidAutoPoolSettings UserError As definições de conjunto automático especificadas não são válidas.
JobBeingTerminated UserError Não é possível iniciar a tarefa porque a tarefa associada está a ser terminada.
Desconhecido ServidorErro Ocorreu um erro de agendamento desconhecido.

A tabela seguinte fornece a lista de códigos de erro de agendamento de tarefas que podem ser devolvidos pelo serviço Batch.

Código de erro Categoria Mensagem de utilizador
BlobNotFound UserError Um dos Blobs do Azure especificados não foi encontrado.
BlobAccessDenied UserError O acesso a um dos Blobs do Azure especificados é negado.
BlobDownloadTimedOut ServidorErro Foi encontrado um tempo limite excedido ao transferir um dos Blobs do Azure especificados.
BlobDownloadMiscError ServidorErro Erro diverso encontrado ao transferir um dos Blobs do Azure especificados.
ResourceDirectoryCreateFailed ServidorErro Falha ao criar o diretório de recursos para a tarefa.
ResourceFileCreateFailed ServidorErro Ocorreu uma falha ao criar o ficheiro de recursos.
ResourceFileWriteFailed ServidorErro Falha ao escrever o ficheiro de recursos.
CommandProgramNotFound UserError O programa de comandos especificado não foi encontrado.
CommandLaunchFailed UserError Falha ao iniciar a linha de comandos especificada.
TarefaSEndidas UserError A tarefa foi terminada por pedido do utilizador.
MaxInternalRetryCountReached UserError A tarefa especificada atingiu a contagem máxima de repetições internas.
TaskSchedulingConstraintFailed UserError Não é possível agendar a tarefa no conjunto associado à tarefa
DiskFull ServidorErro Não existe espaço em disco suficiente no nó que foi selecionado para executar a tarefa.
Desconhecido ServidorErro Ocorreu um erro de agendamento desconhecido.