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. |