Respostas de erros e tipos de recurso do Microsoft GraphMicrosoft Graph error responses and resource types

Os erros no Microsoft Graph serão retornados por meio de códigos de status HTTP padrão, bem como um objeto de resposta de erro JSON.Errors in Microsoft Graph are returned using standard HTTP status codes, as well as a JSON error response object.

Códigos de status de HTTPHTTP status codes

A tabela a seguir lista e descreve os códigos de status HTTP que podem ser retornados.The following table lists and describes the HTTP status codes that can be returned.

Código de statusStatus code Mensagem de statusStatus message DescriçãoDescription
400400 Solicitação Incorreta (Bad Request)Bad Request Não é possível processar a solicitação porque está incorreta ou mal feita.Cannot process the request because it is malformed or incorrect.
401401 Não Autorizado (Unauthorized)Unauthorized As informações de autenticação necessárias estão ausentes ou não são válidas para o recurso.Required authentication information is either missing or not valid for the resource.
403403 ProibidoForbidden Acesso negado ao recurso solicitado. O usuário pode não ter permissão suficiente. Access is denied to the requested resource. The user might not have enough permission.

Importante: Se as políticas de acesso condicional forem aplicadas a um recurso, HTTP 403; Erro proibido=insufficent_claims poderá ser retornado.Important: If conditional access policies are applied to a resource, a HTTP 403; Forbidden error=insufficent_claims may be returned. Para obter mais detalhes sobre o Microsoft Graph e acesso condicional confira Diretrizes de desenvolvedor para acesso condicional do Azure Active DirectoryFor more details on Microsoft Graph and conditional access see Developer Guidance for Azure Active Directory Conditional Access
404404 Não Encontrado (Not Found)Not Found O recurso solicitado não existe.The requested resource doesn’t exist.
405405 Método Não Permitido (Method Not Allowed)Method Not Allowed O método HTTP na solicitação não é permitido no recurso.The HTTP method in the request is not allowed on the resource.
406406 Não Aceitável (Not Acceptable)Not Acceptable Esse serviço não dá suporte ao formato solicitado no cabeçalho Accept.This service doesn’t support the format requested in the Accept header.
409409 ConflitoConflict O estado atual está em conflito com o que a solicitação espera. Por exemplo, a pasta pai especificada não existe.The current state conflicts with what the request expects. For example, the specified parent folder might not exist.
410410 Sumiu (Gone)Gone O recurso solicitado não está mais disponível no servidor.The requested resource is no longer available at the server.
411411 Comprimento Solicitado (Length Required)Length Required É necessário um cabeçalho Content-Length na solicitação.A Content-Length header is required on the request.
412412 Falha na Pré-condição (Precondition Failed)Precondition Failed Uma pré-condição fornecida na solicitação (como um cabeçalho if-match) não corresponde ao estado atual do recurso.A precondition provided in the request (such as an if-match header) does not match the resource's current state.
413413 Entidade de Solicitação Muito Grande (Request Entity Too Large)Request Entity Too Large O tamanho da solicitação excede o limite máximo.The request size exceeds the maximum limit.
415415 Tipo de Mídia Não Suportado (Unsupported Media Type)Unsupported Media Type O tipo de conteúdo da solicitação é um formato sem suporte pelo serviço.The content type of the request is a format that is not supported by the service.
416416 Intervalo Solicitado Não Satisfatório (Requested Range Not Satisfiable)Requested Range Not Satisfiable O intervalo de bytes especificado é inválido ou está indisponível.The specified byte range is invalid or unavailable.
422422 Entidade Não Processável (Unprocessable Entity)Unprocessable Entity Não é possível processar a solicitação porque ela está semanticamente incorreta.Cannot process the request because it is semantically incorrect.
423423 BloqueadoLocked O recurso acessado está bloqueado.The resource that is being accessed is locked.
429429 Muitos Pedidos (Too Many Requests)Too Many Requests O aplicativo cliente foi restringido e não deve tentar repetir a solicitação antes de determinado intervalo de tempo.Client application has been throttled and should not attempt to repeat the request until an amount of time has elapsed.
500500 Erro Interno do Servidor (Internal Server Error)Internal Server Error Ocorreu um erro interno do servidor ao processar a solicitação.There was an internal server error while processing the request.
501501 Não Implementado (Not Implemented)Not Implemented O recurso solicitado não foi implementado.The requested feature isn’t implemented.
503503 Serviço Indisponível (Service Unavailable)Service Unavailable 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.The service is temporarily unavailable for maintenance or is overloaded. You may repeat the request after a delay, the length of which may be specified in a Retry-After header.
504504 Tempo Limite do Gateway (Gateway Timeout)Gateway Timeout O servidor, ao atuar como um proxy, não recebeu uma resposta em tempo hábil do servidor upstream necessário para acessar a tentativa de concluir a solicitação. Pode ocorrer com 503.The server, while acting as a proxy, did not receive a timely response from the upstream server it needed to access in attempting to complete the request. May occur together with 503.
507507 Armazenamento Insuficiente (Insufficient Storage)Insufficient Storage A cota máxima de armazenamento foi atingida.The maximum storage quota has been reached.
509509 Limite de Largura de Banda Excedido (Bandwidth Limit Exceeded)Bandwidth Limit Exceeded 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.Your app has been throttled for exceeding the maximum bandwidth cap. Your app can retry the request again after more time has elapsed.

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.The error response is a single JSON object that contains a single property named error. This object includes all the details of the error. You can use the information returned here instead of or in addition to the HTTP status code. The following is an example of a full JSON error body.

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

Tipo de recurso de erroError resource type

O recurso de erro será retornado sempre que ocorrer um erro no processamento de uma solicitação.The error resource is returned whenever an error occurs in the processing of a request.

Respostas de erro seguem a definição na especificação OData v4 para respostas de erro.Error responses follow the definition in the OData v4 specification for error responses.

Representação JSONJSON representation

O recurso de erro é composto por estes recursos:The error resource is composed of these resources:

{
  "error": { "@odata.type": "odata.error" }  
}

Tipo de recurso odata.errorodata.error resource type

Dentro da resposta de erro há um recurso de erro que inclui as seguintes propriedades:Inside the error response is an error resource that includes the following properties:

{
  "code": "string",
  "message": "string",
  "innererror": { "@odata.type": "odata.error" }
}
Nome da propriedadeProperty name ValorValue DescriçãoDescription
codecode stringstring Uma cadeia de códigos de erro para a falha que ocorreuAn error code string for the error that occurred
messagemessage stringstring Uma mensagem pronta do programador sobre o erro que ocorreu. Esta não deve ser apresentada diretamente ao usuário.A developer ready message about the error that occurred. This should not be displayed to the user directly.
innererrorinnererror error objecterror object Opcional. Objetos error adicionais que podem ser mais específicos do que o erro de nível superior.Optional. Additional error objects that may be more specific than the top level error.

Propriedade de códigoCode property

A propriedade code contém um dos valores possíveis a seguir. Seus aplicativos devem estar preparados para lidar com qualquer um destes erros.The code property contains one of the following possible values. Your apps should be prepared to handle any one of these errors.

CódigoCode DescriçãoDescription
accessDeniedaccessDenied O chamador não tem permissão para executar a ação.The caller doesn't have permission to perform the action.
activityLimitReachedactivityLimitReached O aplicativo ou o usuário foi restringido.The app or user has been throttled.
extensionErrorextensionError A caixa de correio está localizada no local e o servidor do Exchange não dá suporte a solicitações federadas do Microsoft Graph, ou uma política de aplicativo impede que o aplicativo acesse a caixa de correio.The mailbox is located on premises and the Exchange server does not support federated Microsoft Graph requests, or an application policy prevents the application from accessing the mailbox.
generalExceptiongeneralException Ocorreu um erro não especificado.An unspecified error has occurred.
invalidRangeinvalidRange O intervalo de bytes especificado é inválido ou está indisponível.The specified byte range is invalid or unavailable.
invalidRequestinvalidRequest A solicitação está incorreta ou foi mal formada.The request is malformed or incorrect.
itemNotFounditemNotFound Não foi possível localizar o recurso.The resource could not be found.
malwareDetectedmalwareDetected Malware detectado no recurso solicitado.Malware was detected in the requested resource.
nameAlreadyExistsnameAlreadyExists O nome do item especificado já existe.The specified item name already exists.
notAllowednotAllowed A ação não é permitida pelo sistema.The action is not allowed by the system.
notSupportednotSupported A solicitação não tem suporte do sistema.The request is not supported by the system.
resourceModifiedresourceModified O recurso em atualização foi alterado desde que o chamador o leu pela última vez, geralmente uma incompatibilidade de eTag.The resource being updated has changed since the caller last read it, usually an eTag mismatch.
resyncRequiredresyncRequired O token delta não é mais válido e o aplicativo deve redefinir o estado de sincronização.The delta token is no longer valid, and the app must reset the sync state.
serviceNotAvailableserviceNotAvailable O serviço não está disponível. Tente fazer a solicitação novamente após um atraso. Pode haver um cabeçalho Retry-AfterThe service is not available. Try the request again after a delay. There may be a Retry-After header.
syncStateNotFoundsyncStateNotFound As gerações do estado de sincronização não foram encontradas.The sync state generation is not found. O token delta está expirado e os dados precisam ser novamente sincronizados.The delta token is expired and data must be synchronized again.
quotaLimitReachedquotaLimitReached O usuário atingiu seu limite de cota.The user has reached their quota limit.
unauthenticatedunauthenticated O chamador não está autenticado.The caller is not authenticated.

O objeto innererror pode conter repetidamente mais objetos innererror com códigos de erro adicionais, mais específicos. Ao lidar com um erro, os aplicativos devem percorrer todos os códigos de erro disponíveis e usar o mais detalhado que consigam entender. Alguns dos códigos mais detalhados estão listados na parte inferior desta página.The innererror object might recursively contain more innererror objects with additional, more specific error codes. When handling an error, apps should loop through all the error codes available and use the most detailed one that they understand. Some of the more detailed codes are listed at the bottom of this page.

Para verificar se um objeto de erro é um erro que você está esperando, execute um loop sobre os objetos innererror procurando os códigos de erro que você espera. Por exemplo:To verify that an error object is an error you are expecting, you must loop over the innererror objects, looking for the error codes you expect. For example:

public bool IsError(string expectedErrorCode)
{
    OneDriveInnerError errorCode = this.Error;
    while (null != errorCode)
    {
        if (errorCode.Code == expectedErrorCode)
            return true;
        errorCode = errorCode.InnerError;
    }
    return false;
}

Para um exemplo que mostra como lidar de maneira apropriada com erros, consulte Tratamento de Código de Erro.For an example that shows how to properly handle errors, see Error Code Handling.

A propriedade message na raiz contém uma mensagem de erro destinada ao desenvolvedor. As mensagens de erro não são localizadas e não devem ser exibidas diretamente para o usuário. Ao tratar de erros, seu código não deve desviar dos valores message porque eles podem mudar a qualquer momento e geralmente contêm informações dinâmicas específicas para a solicitação com falha. Você só deve escrever códigos contra códigos de erro retornados nas propriedades code.The message property at the root contains an error message intended for the developer to read. Error messages are not localized and shouldn't be displayed directly to the user. When handling errors, your code should not key off of message values because they can change at any time, and they often contain dynamic information specific to the failed request. You should only code against error codes returned in code properties.

Códigos de erro detalhadosDetailed error codes

A seguir estão alguns erros adicionais que seu aplicativo pode encontrar nos objetos aninhados innererror. Os aplicativos não são obrigados a tratar deles, mas podem, se quiserem. O serviço pode adicionar novos códigos de erro ou parar de retornar os antigos a qualquer hora; portanto, é importante que todos os aplicativos consigam tratar dos códigos de erro básicos.The following are some additional errors that your app might encounter within the nested innererror objects. Apps are not required to handle these, but can if they choose. The service might add new error codes or stop returning old ones at any time, so it is important that all apps be able to handle the basic error codes.

CódigoCode DescriçãoDescription
accessRestrictedaccessRestricted Acesso restrito ao proprietário do item.Access restricted to the item's owner.
cannotSnapshotTreecannotSnapshotTree Falha ao obter um instantâneo delta consistente. Tente novamente mais tarde.Failed to get a consistent delta snapshot. Try again later.
childItemCountExceededchildItemCountExceeded Limite máximo do número de itens filhos atingido.Max limit on the number of child items was reached.
entityTagDoesNotMatchentityTagDoesNotMatch ETag não corresponde ao valor do item atual.ETag does not match the current item's value.
fragmentLengthMismatchfragmentLengthMismatch O tamanho total declarado para esse fragmento é diferente do da sessão de carregamento.Declared total size for this fragment is different from that of the upload session.
fragmentOutOfOrderfragmentOutOfOrder O fragmento carregado está fora da ordem.Uploaded fragment is out of order.
fragmentOverlapfragmentOverlap Fragmento carregado sobrepõe-se a dados existentes.Uploaded fragment overlaps with existing data.
invalidAcceptTypeinvalidAcceptType Tipo de aceitação inválido.Invalid accept type.
invalidParameterFormatinvalidParameterFormat Formato de parâmetro inválido.Invalid parameter format.
invalidPathinvalidPath O nome contém caracteres inválidos.Name contains invalid characters.
invalidQueryOptioninvalidQueryOption Opção de consulta inválida.Invalid query option.
invalidStartIndexinvalidStartIndex Índice de início inválido.Invalid start index.
lockMismatchlockMismatch O token de bloqueio não corresponde ao bloqueio existente.Lock token does not match existing lock.
lockNotFoundOrAlreadyExpiredlockNotFoundOrAlreadyExpired Não há atualmente nenhum bloqueio expirado no item.There is currently no unexpired lock on the item.
lockOwnerMismatchlockOwnerMismatch A ID do proprietário do bloqueio não corresponde à ID fornecida.Lock Owner ID does not match provided ID.
malformedEntityTagmalformedEntityTag O Cabeçalho ETag está mal feito. ETags devem ser cadeias de caracteres entre aspas.ETag header is malformed. ETags must be quoted strings.
maxDocumentCountExceededmaxDocumentCountExceeded Atingido o limite máximo do número de documentos.Max limit on number of Documents is reached.
maxFileSizeExceededmaxFileSizeExceeded Tamanho máximo do arquivo excedido.Max file size exceeded.
maxFolderCountExceededmaxFolderCountExceeded Atingido o limite máximo do número de pastas.Max limit on number of Folders is reached.
maxFragmentLengthExceededmaxFragmentLengthExceeded Tamanho máximo do arquivo excedido.Max file size exceeded.
maxItemCountExceededmaxItemCountExceeded Limite máximo do número de itens atingido.Max limit on number of Items is reached.
maxQueryLengthExceededmaxQueryLengthExceeded Comprimento máximo de consulta excedido.Max query length exceeded.
maxStreamSizeExceededmaxStreamSizeExceeded Tamanho máximo de fluxo excedido.Maximum stream size exceeded.
parameterIsTooLongparameterIsTooLong Parâmetro excede o comprimento máximo.Parameter Exceeds Maximum Length.
parameterIsTooSmallparameterIsTooSmall Parâmetro é menor que o valor mínimo.Parameter is smaller then minimum value.
pathIsTooLongpathIsTooLong O caminho excede o comprimento máximo.Path exceeds maximum length.
pathTooDeeppathTooDeep Atingido o limite de profundidade da hierarquia de pastas.Folder hierarchy depth limit reached.
propertyNotUpdateablepropertyNotUpdateable Propriedade não atualizável.Property not updateable.
resyncApplyDifferencesresyncApplyDifferences Nova sincronização necessária. Substitua todos os itens locais com a versão do servidor (incluindo exclusões) se você tiver certeza de que o serviço estava atualizado com suas alterações locais quando você sincronizou pela última vez. Carregar alterações locais que o servidor não conhece.Resync required. Replace any local items with the server's version (including deletes) if you're sure that the service was up to date with your local changes when you last sync'd. Upload any local changes that the server doesn't know about.
resyncRequiredresyncRequired Nova sincronização é necessária.Resync is required.
resyncUploadDifferencesresyncUploadDifferences Nova sincronização necessária. Carregue os itens locais que o serviço não retornou e carregue os arquivos que diferem da versão do servidor (mantendo ambas as cópias se você não tiver certeza de qual é a mais atual).Resync required. Upload any local items that the service did not return, and upload any files that differ from the server's version (keeping both copies if you're not sure which one is more up-to-date).
serviceNotAvailableserviceNotAvailable O servidor não consegue processar a solicitação atual.The server is unable to process the current request.
serviceReadOnlyserviceReadOnly O recurso é temporariamente somente leitura.Resource is temporarily read-only.
throttledRequestthrottledRequest Muitos pedidos.Too many requests.
tooManyResultsRequestedtooManyResultsRequested Muitos resultados solicitados.Too many results requested.
tooManyTermsInQuerytooManyTermsInQuery Muitos termos na consulta.Too many terms in the query.
totalAffectedItemCountExceededtotalAffectedItemCountExceeded Operação não permitida porque o número de itens afetados excede o limite.Operation is not allowed because the number of affected items exceeds threshold.
truncationNotAllowedtruncationNotAllowed O truncamento de dados não é permitido.Data truncation is not allowed.
uploadSessionFaileduploadSessionFailed Falha na sessão de carregamento.Upload session failed.
uploadSessionIncompleteuploadSessionIncomplete Sessão de carregamento incompleta.Upload session incomplete.
uploadSessionNotFounduploadSessionNotFound Sessão de carregamento não encontrada.Upload session not found.
virusSuspiciousvirusSuspicious Este documento é suspeito e pode conter um vírus.This document is suspicious and may have a virus.
zeroOrFewerResultsRequestedzeroOrFewerResultsRequested Nenhum ou poucos resultados solicitados.Zero or fewer results requested.