Códigos de Estado HTTP para o Azure Cosmos DB

Este artigo fornece os códigos de estado HTTP devolvidos pelas operações REST.

Código Descrição
200 OK Uma das seguintes operações REST foi efetuada com êxito:

- GET num recurso.
- PUT num recurso.
- POST num recurso.
- POST num recurso de procedimento armazenado para executar o procedimento armazenado.
201 Criado Uma operação POST para criar um recurso é bem-sucedida.
204 Sem conteúdo A operação DELETE foi efetuada com êxito.
400 Pedido incorreto O JSON, SQL ou JavaScript no corpo do pedido é inválido.

Além disso, também pode ser devolvido um 400 quando as propriedades necessárias de um recurso não estão presentes ou definidas no corpo do POST ou PUT no recurso.

400 também é devolvido quando o nível consistente de uma operação GET é substituído por uma consistência mais forte do conjunto da conta.

O 400 também é devolvido quando um pedido que requer uma chave x-ms-documentdb-partitionkey não o inclui.
401 Não Autorizado O 401 é devolvido quando o Authorization cabeçalho é inválido para o recurso pedido.
403 Proibido Token de autorização expirado.

O código 403 também é devolvido durante uma POST operação para criar um recurso quando a quota de recursos for atingida. Um exemplo deste cenário é quando tenta adicionar documentos a uma coleção que atingiu o respetivo armazenamento aprovisionado.

O erro 403 também pode ser devolvido quando um procedimento armazenado, acionador ou UDF tiver sido sinalizado como de alta utilização de recursos e a sua execução bloqueada.

O erro 403 Proibido é devolvido quando as regras de firewall configuradas na conta do Azure Cosmos DB bloqueiam o pedido. Todos os pedidos provenientes de computadores fora da lista de permitidos receberão uma resposta 403.

403.3 – este código de estado é devolvido para pedidos de escrita durante a operação de ativação pós-falha manual. Este código de estado é utilizado como um código de redirecionamento por controladores para reencaminhar os pedidos de escrita para uma nova região de escrita. O cliente REST direto deve executar GET na DatabaseAccount para identificar a região de escrita atual e encaminhar o pedido de escrita para esse ponto final.
404 Não encontrado A operação está a tentar agir num recurso que já não existe. Por exemplo, o recurso pode já ter sido eliminado.
408 Tempo limite do pedido A operação não foi concluída dentro do período de tempo atribuído. Este código é devolvido quando um procedimento armazenado, acionador ou UDF (dentro de uma consulta) não conclui a execução dentro do tempo máximo de execução.
409 Conflito O ID introduzido para um recurso numa operação PUT ou POST foi assumido por um recurso existente. Para resolver este problema, utilize outro ID para o recurso. Para coleções particionadas, o ID tem de ser exclusivo em todos os documentos com o mesmo valor da chave de partição.
412 Falha de pré-condição A operação especificou um eTag diferente da versão disponível no servidor, ou seja, um erro de simultaneidade otimista. Repita o pedido depois de ler a versão mais recente do recurso e atualizar a eTag no pedido.
413 Entidade demasiado grande O tamanho do documento no pedido excedeu o tamanho permitido para um pedido. O tamanho máximo do documento permitido é de 2 MB.
423 Bloqueado A operação de dimensionamento de débito não pode ser realizada porque há outra operação de dimensionamento em curso.
424 Dependência falhada Quando uma operação do documento falha no âmbito transacional de uma operação TransactionalBatch, todas as outras operações no lote são consideradas dependências falhadas. Este código de estado indica que a operação atual foi considerada falhada devido a outra falha no mesmo âmbito transacional.
429 Demasiados pedidos A coleção ultrapassou o limite de débito aprovisionado. Tente novamente o pedido após o servidor especificado repetir passado algum tempo. Para obter mais informações, veja unidades de pedido.
449 Tentar Novamente com A operação encontrou um erro transitório. Este código só ocorre em operações de escrita. É seguro repetir a operação.
500 Erro de Servidor Interno A operação falhou devido a um erro de serviço inesperado. Contacte o suporte. Veja Arquivar um problema de suporte do Azure.
503 Serviço Indisponível Não foi possível concluir a operação porque o serviço não estava disponível. Esta situação pode ocorrer devido a problemas de conectividade de rede ou disponibilidade do serviço. É seguro repetir a operação. Se o problema persistir, contacte o suporte.

Códigos de substatus HTTP

Ao utilizar chaves de Customer-Managed (CMK) no Azure Cosmos DB, se existirem erros, o Azure Cosmos DB devolve os detalhes do erro juntamente com um código de subtoto HTTP na resposta. Pode utilizar este código de subtoto para depurar a causa principal do problema. Atualmente, o Azure Cosmos DB suporta os seguintes códigos de substatus:

Códigos de substatus para problemas do lado do servidor

Os seguintes códigos de substatus são suportados pelo Azure Cosmos DB para problemas do lado do servidor:

Código de substatus Descrição
4000 (Falha ao obter/aceder ao token de Azure AD) Este erro ocorre se o Azure Cosmos DB não conseguir obter o token de acesso do Azure Active Directory (Azure AD). Este token é necessário para que o Azure Cosmos DB aceda ao Key Vault. O erro pode ocorrer devido a um problema de rede ou a um datacenter e não é algo que o utilizador possa efetuar uma ação. Crie um pedido de suporte para contactar a equipa do Azure Cosmos DB para resolver o problema.
4001 (Azure AD serviço não está disponível) Este erro ocorre se o serviço Azure AD estiver inativo ou tiver problemas. Pode verificar o dashboard de indisponibilidade do Azure para verificar se existe alguma falha existente. Normalmente, estas interrupções são resolvidas dentro de algumas horas. O melhor para si é contactar a equipa do Azure AD e informá-los sobre o problema que está a ver. Se a equipa de Azure AD detetar que não existe nenhum problema, crie um pedido de suporte para contactar a equipa do Azure Cosmos DB para resolução.
4004 (Key Vault serviço não está disponível) Este erro ocorre se o Azure Cosmos DB tentar aceder ao Key Vault, mas o serviço não estiver disponível. Isto pode dever-se a um problema de rede para alcançar Key Vault ou o próprio serviço pode estar inativo. Pode verificar o dashboard de indisponibilidade do Azure para verificar se existe alguma falha existente. Normalmente, estas interrupções são resolvidas dentro de algumas horas. O melhor para si é contactar a equipa Key Vault e informá-los sobre o problema que está a ver. Se a equipa de Key Vault detetar que não existe nenhum problema, crie um pedido de suporte para contactar a equipa do Azure Cosmos DB para resolução.
4007 (Erro interno do servidor) Trata-se de um erro interno do servidor e ocorre se os bytes de entrada não estiverem no formato base64.
4008 (Key Vault erros de serviço interno) Este erro ocorre se o Azure Cosmos DB não conseguir aceder ao Key Vault. Pode dever-se a um problema de rede ou se o próprio serviço de Key Vault estiver inativo. Pode verificar o dashboard de indisponibilidade do Azure para verificar se existe alguma falha existente. Normalmente, estas interrupções são resolvidas dentro de algumas horas. O melhor para si é contactar a equipa Key Vault e informá-los sobre o problema que está a ver. Se a equipa de Key Vault detetar que não existe nenhum problema, contacte a equipa do Azure Cosmos DB para resolução.
1013 (A operação de criação de coleções está em curso) Se encontrar uma exceção de tempo limite ao criar uma coleção, efetue uma operação de leitura para validar se a coleção foi criada com êxito. A operação de leitura gera uma exceção até que a operação de criação da coleção seja bem-sucedida. Se a operação de leitura lançar uma exceção com o código de estado 404 e o código de sub-estado do 1013, significa que a operação de criação da coleção ainda está em curso. Repita a operação de leitura até obter códigos de estado 200 ou 201, estes códigos informam-no de que a coleção foi criada com êxito.

Códigos de substatus para problemas do utilizador final

Os seguintes códigos de substatus são suportados pelo Azure Cosmos DB para problemas causados pelo utilizador final:

Código de substatus Descrição
4002 (Key Vault não concede permissão ao Azure AD ou a chave está desativada) Este problema ocorre se tiver removido a identidade do Azure Cosmos DB das políticas de acesso Key Vault ou se tiver desativado a chave. Normalmente, este problema é causado pelo utilizador final. Se este erro ocorrer, certifique-se de que o Azure Cosmos DB tem acesso ao Key Vault e que a chave está ativada.
4003 (A chave não foi encontrada) Este problema ocorre se a chave for eliminada do Key Vault. Normalmente, este problema é causado pelo utilizador final. Um dos pré-requisitos para utilizar o Azure Cosmos DB com chaves geridas pelo cliente é que o Key Vault tem a proteção de eliminação recuperável e remoção ativada. Isto significa que pode recuperar a chave eliminada e restaurar o acesso ao Azure Cosmos DB.
4005 (Não é possível moldar ou desembrulhar a chave) Este erro ocorre se o Key Vault não conseguir moldar ou desembrulhar a chave. Normalmente, este problema é causado pelo utilizador final. Uma das causas possíveis para este erro é que o Key Vault não conseguiu descodificar o blob encriptado com a chave mais recente porque rodou a chave. Para resolver este erro, ative as chaves recentemente desativadas e esta será resolvida dentro de cerca de uma hora. Se o problema não for resolvido após mais de 2 horas, transmita o problema para o Azure Cosmos DB.
4006 (O URL da Chave é inválido) Este erro ocorre durante o aprovisionamento se tiver incluído a versão da chave no URL do Key Vault. Este erro é frequentemente causado pelo utilizador final. Para resolver este erro, remova a versão e tente novamente. Por exemplo, se tiver utilizado o URL no formato https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/<KeyVersion>, atualize-o para https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/
4009 (Key Vault nome DNS não pode ser resolvido) Este erro ocorre se não for possível resolver o Key Vault nome DNS, porque utilizou o nome de Key Vault incorreto. Este erro é causado pelo utilizador final. Para resolvê-lo, corrija o Key Vault nome e tente novamente.

Ver também