Respostas de erros e tipos de recurso do Microsoft Graph

Os erros no Microsoft Graph são retornados usando códigos HTTP status padrão e um objeto de resposta a erro JSON.

Códigos de status de HTTP

A tabela a seguir lista e descreve os códigos de status HTTP que podem ser retornados.

Código de status Mensagem de status Descrição
400 Solicitação Incorreta (Bad Request) Não é possível processar a solicitação porque ela está malformada ou incorreta.
401 Não Autorizado (Unauthorized) As informações de autenticação necessárias estão ausentes ou não são válidas para o recurso.
402 Pagamento necessário Os requisitos de pagamento da API não foram atendidos.
403 Proibido Acesso negado ao recurso solicitado. O usuário pode não ter permissão suficiente ou talvez não tenha uma licença necessária.

Importante: Se as políticas de acesso condicional forem aplicadas a um recurso, uma HTTP 403; Forbidden error=insufficient_claims mensagem poderá ser retornada. Para obter mais informações sobre o Microsoft Graph e o acesso condicional, consulte Diretrizes do desenvolvedor para acesso condicional Microsoft Entra.
404 Não Encontrado (Not Found) O recurso solicitado não existe.
405 Método Não Permitido (Method Not Allowed) O método HTTP na solicitação não é permitido no recurso.
406 Não Aceitável (Not Acceptable) Esse serviço não dá suporte ao formato solicitado no cabeçalho Accept.
409 Conflito O estado atual está em conflito com o que a solicitação espera. Por exemplo, a pasta pai especificada não existe.
410 Sumiu (Gone) O recurso solicitado não está mais disponível no servidor.
411 Comprimento Solicitado (Length Required) É necessário um cabeçalho Content-Length na solicitação.
412 Falha na Pré-condição (Precondition Failed) Uma pré-condição fornecida na solicitação (como um cabeçalho if-match) não corresponde ao estado atual do recurso.
413 Entidade de Solicitação Muito Grande (Request Entity Too Large) O tamanho da solicitação excede o limite máximo.
415 Tipo de Mídia Não Suportado (Unsupported Media Type) O tipo de conteúdo da solicitação é um formato que não tem suporte do serviço.
416 Intervalo Solicitado Não Satisfatório (Requested Range Not Satisfiable) O intervalo de bytes especificado é inválido ou está indisponível.
422 Entidade Não Processável (Unprocessable Entity) Não é possível processar a solicitação porque ela está semanticamente incorreta.
423 Bloqueado O recurso acessado está bloqueado.
429 Muitos Pedidos (Too Many Requests) O aplicativo cliente foi limitado e não deve tentar repetir a solicitação até que um período de tempo tenha decorrido.
500 Erro Interno do Servidor (Internal Server Error) Ocorreu um erro interno do servidor ao processar a solicitação.
501 Não Implementado (Not Implemented) O recurso solicitado não foi implementado.
503 Serviço Indisponível O serviço está temporariamente indisponível para manutenção ou está sobrecarregado. Você pode repetir a solicitação após um atraso, cujo comprimento pode ser especificado em um cabeçalho Retry-After.
504 Tempo Limite do Gateway (Gateway Timeout) O servidor, enquanto atuava como proxy, não recebeu uma resposta oportuna do servidor upstream que precisava acessar na tentativa de concluir a solicitação.
507 Armazenamento Insuficiente (Insufficient Storage) A cota máxima de armazenamento foi atingida.
509 Limite de Largura de Banda Excedido Seu aplicativo foi limitado por exceder o limite máximo de largura de banda. O aplicativo pode tentar a solicitação novamente depois de decorrido algum tempo.

A resposta de erro é um único objeto JSON que contém uma propriedade única chamada error. Esse objeto inclui todos os detalhes do erro. Você pode usar as informações retornadas aqui em vez de ou além do código de status HTTP. Este é um exemplo de um corpo de erro JSON completo.

{
  "error": {
    "code": "badRequest",
    "message": "Uploaded fragment overlaps with existing data.",
    "innerError": {
      "code": "invalidRange",
      "request-id": "request-id",
      "date": "date-time"
    }
  }
}

Tipo de recurso de erro

O recurso de erro será retornado sempre que ocorrer um erro no processamento de uma solicitação.

As respostas de erro seguem a definição nas Diretrizes da API REST da Microsoft.

Representação JSON

O recurso de erro é composto por um único recurso:

{
  "error": {
    "code": "string",
    "message": "string",
    "innererror": { 
      "code": "string"
    },
    "details": []
  }
}
Nome da propriedade Valor Descrição
code string Uma cadeia de códigos de erro para a falha que ocorreu
message string Uma mensagem pronta para o desenvolvedor sobre o erro que ocorreu. Isso não deve ser exibido diretamente para o usuário.
innererror objeto error Opcional. Um objeto de erro adicional que pode ser mais específico do que o erro de nível superior.
detalhes error object Opcional. Uma lista de objetos de erro adicionais que podem fornecer uma divisão de vários erros encontrados durante o processamento da solicitação.

Propriedades

A propriedade code contém um valor legível pelo computador no qual você pode usar uma dependência em seu código.

O objeto innererror pode conter de forma recursiva mais objetos innererror com propriedades de códigos de erro adicionais e mais específicas . Ao lidar com um erro, os aplicativos devem percorrer todos os códigos de erro aninhados disponíveis e usar o mais detalhado que eles entendem.

A propriedade da mensagem é um valor legível pelo homem que descreve a condição de erro. Não tenha nenhuma dependência do conteúdo desse valor em seu código.

A propriedade de mensagem na raiz contém uma mensagem de erro destinada ao desenvolvedor a ler. As mensagens de erro não são localizadas e não devem ser exibidas diretamente para o usuário. Ao lidar com erros, seu código não deve ter nenhuma dependência dos valores da propriedade da mensagem porque eles podem ser alterados a qualquer momento e geralmente contêm informações dinâmicas específicas para a solicitação com falha. Você só deve codificar contra códigos de erro retornados em propriedades de código .

A propriedade details é uma matriz opcional de objetos de erro que têm o mesmo formato JSON que o objeto de erro de nível superior. No caso de uma solicitação composta por várias operações, como uma operação em massa ou em lote, talvez seja necessário retornar um erro independente para cada operação. Nesse caso, a lista de detalhes é preenchida com esses erros individuais.