Quando uma requisição de API ao Simple Message Queue (anteriormente MNS) falha, o service retorna um código de status HTTP de erro (3xx, 4xx ou 5xx) e um corpo de resposta em XML ou texto com os detalhes do erro. Este tópico descreve o formato da resposta de erro e lista todos os códigos de erro com as soluções recomendadas.
Formato da resposta de erro
Uma resposta de erro possui a seguinte estrutura XML:
<?xml version="1.0" encoding="UTF-8"?>
<Error xmlns="http://mns.aliyuncs.com/doc/v1/">
<Code>InvalidArgument</Code>
<Message>Authorization header is invalid or missing.</Message>
<RequestId>04bb60e3-28aa-4706-99b0-9345d834****</RequestId>
<HostId>mns.cn-hangzhou.aliyuncs.com</HostId>
</Error>
A tabela a seguir descreve cada elemento no corpo da resposta de erro.
|
Elemento |
Descrição |
|
Code |
O código de erro que identifica o tipo de erro. |
|
Message |
Uma mensagem de erro detalhada. |
|
RequestId |
O ID exclusivo da requisição. Forneça esse ID ao entrar em contato com o suporte técnico. |
|
HostId |
O endpoint da instância do Simple Message Queue (anteriormente MNS) que processou a requisição. |
Para erros específicos de operação, consulte a documentação da API da operação correspondente.
Lista de códigos de erro
As tabelas a seguir listam os códigos de erro agrupados por categoria. Cada entrada inclui o código de status HTTP, o código de erro, a mensagem de erro retornada pela API e a solução recomendada.
Erros de autenticação e autorização
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
400 |
InvalidAuthorizationHeader |
The Authorization header format is invalid. |
O cabeçalho Authorization está formatado incorretamente. Verifique se o AccessKey ID e o AccessKey secret são válidos. |
|
400 |
MissingAuthorizationHeader |
Authorization header is required. |
O cabeçalho Authorization está ausente. Adicione o cabeçalho obrigatório à sua requisição. Para mais informações, consulte Parâmetros comuns. |
|
400 |
InvalidDateHeader |
The Date header format is invalid. |
O cabeçalho Date está formatado incorretamente. Para mais informações, consulte Parâmetros comuns. |
|
400 |
MissingDateHeader |
Date header is required. |
O cabeçalho Date está ausente. Adicione o cabeçalho obrigatório à sua requisição. Para mais informações, consulte Parâmetros comuns. |
|
400 |
InvalidDegist |
The Content-MD5 you specified is invalid. |
O valor do cabeçalho Content-MD5 é inválido. Recalcule e defina o valor correto de Content-MD5. |
|
403 |
AccessDenied |
The OwnerId that your Access Key Id associated to is forbidden for this operation. |
A conta associada ao AccessKey ID não possui permissão para esta operação. Confirme se você está usando o AccessKey ID correto e se a conta tem as permissões necessárias. |
|
403 |
InvalidAccessKeyId |
The AccessKey Id you provided is not exist. |
O AccessKeyID especificado não existe. Verifique se o AccessKey ID está correto. |
|
403 |
SignatureDoesNotMatch |
The request signature we calculated does not match the signature you provided. Check your key and signing method. |
A assinatura da requisição é inválida. Confira o AccessKey secret e o método de assinatura. Para mais informações, consulte Assinatura de requisições. |
|
408 |
TimeExpired |
The http request you sent is expired. |
A diferença de horário entre o cliente e o servidor excede 15 minutos. Sincronize o relógio do seu sistema local. |
Erros de validação de requisição
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
400 |
InvalidRequestURL |
Http request URL format invalid. |
O formato da URL da requisição é inválido. Confira a URL de acordo com a documentação da API. |
|
400 |
InvalidQueryString |
Http request URL contains invalid querystring item "{QueryString}". |
A URL da requisição contém um parâmetro de query string inválido. Remova ou corrija o parâmetro inválido. |
|
400 |
MalformedXML |
The XML you provided was not well-formed. |
O corpo XML da requisição está malformado. Valide a sintaxe do XML antes de enviar a requisição. |
|
400 |
InvalidArgument |
The length of message should not be larger than MaximumMessageSize. |
O corpo da mensagem excede o tamanho máximo permitido. Reduza o tamanho da mensagem ou aumente o MaximumMessageSize da fila. |
|
400 |
InvalidArgument |
A subscription's MaximumMessageSize should be greater than the topic's MaximumMessageSize! |
O MaximumMessageSize da assinatura deve ser maior ou igual ao MaximumMessageSize do tópico. Aumente o valor de MaximumMessageSize da assinatura. |
|
400 |
InvalidArgument |
The XML you provided did not validate against our published schema, cause by {Parameter}. |
O corpo XML da requisição não está em conformidade com o esquema esperado. Verifique o parâmetro especificado e corrija a estrutura do XML. |
|
400 |
InvalidArgument |
The value of {Parameter} should between {Min} and {Max} seconds/bytes. |
O valor de um parâmetro está fora do intervalo permitido. Defina o valor do parâmetro dentro do intervalo especificado. |
Nota : Nas mensagens de erro acima,{Parameter}representa um parâmetro no corpo XML da requisição,{Min}e{Max}representam os valores mínimo e máximo permitidos, e{QueryString}representa um parâmetro de query string na URL da requisição.
Erros de nomenclatura de recursos
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
400 |
InvalidQueueName |
The queue name you provided is invalid. QueueName should start with alpha and contain only alpha, digit or -. |
O nome da fila deve começar com uma letra e conter apenas letras, dígitos e hífens (-). |
|
400 |
QueueNameLengthError |
Queue name length should between 1 and 255. |
O nome da fila deve ter de 1 a 255 caracteres. |
|
400 |
TopicNameInvalid |
The topic name you provided is invalid. TopicName should start with alpha or digit and contain only alpha, digit or -. |
O nome do tópico deve começar com uma letra ou dígito e conter apenas letras, dígitos e hífens (-). |
|
400 |
TopicNameLengthError |
Topic name length is out of range, should be between 1 and 255. |
O nome do tópico deve ter de 1 a 255 caracteres. |
|
400 |
SubscriptionNameInvalid |
The subscription name you provided is invalid. SubscriptionName should start with alpha or digit and contain only alpha, digit or -. |
O nome da assinatura deve começar com uma letra ou dígito e conter apenas letras, dígitos e hífens (-). |
|
400 |
SubscriptionNameLengthError |
Subscription name length is out of range, should be between 1 and 255. |
O nome da assinatura deve ter de 1 a 255 caracteres. |
|
400 |
EndpointInvalid |
The format of endpoint you provided is invalid. |
O formato do endpoint é inválido. Para mais informações, consulte Endpoint. |
Erros de mensagem e receipt handle
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
400 |
MissingReceiptHandle |
ReceiptHandle is required. |
Inclua o parâmetro ReceiptHandle na sua requisição. |
|
400 |
MissingVisibilityTimeout |
VisibilityTimeout is required. |
Inclua o parâmetro VisibilityTimeout na sua requisição. |
|
400 |
ReceiptHandleError |
The receipt handle you provide is not valid. |
O receipt handle é inválido. Utilize um receipt handle válido obtido de uma operação ReceiveMessage. |
|
404 |
MessageNotExist |
Message not exist. |
Não há mensagens disponíveis na fila. A fila está vazia ou todas as mensagens estão invisíveis no momento. |
|
404 |
MessageNotExist |
The receipt handle you provided has expired. |
O receipt handle expirou porque a mensagem não foi processada dentro do período de visibility timeout. Processe as mensagens dentro do período de visibility timeout ou aumente o valor de visibility timeout. |
Erros de recurso não encontrado e conflito
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
404 |
QueueNotExist |
The queue name you provided does not exist. |
A fila especificada não existe. Crie a fila antes de executar esta operação. |
|
404 |
TopicNotExist |
The topic name you provided does not exist. |
O tópico especificado não existe. Crie o tópico antes de executar esta operação. |
|
404 |
SubscriptionNotExist |
The subscription you provided does not exist. |
A assinatura especificada não existe. Crie a assinatura antes de executar esta operação. |
|
409 |
QueueAlreadyExist |
The queue you want to create is already exist. |
Já existe uma fila com o mesmo nome, porém com atributos diferentes. Use um nome diferente ou garanta que os atributos correspondam à fila existente. |
|
409 |
TopicAlreadyExist |
The topic you want to create already exists. |
Já existe um tópico com o mesmo nome, porém com atributos diferentes. Use um nome diferente ou garanta que os atributos correspondam ao tópico existente. |
|
409 |
SubscriptionAlreadyExist |
The subscription you want to create already exists. |
Já existe uma assinatura com o mesmo nome, porém com atributos diferentes. Use um nome diferente ou garanta que os atributos correspondam à assinatura existente. |
Erros de limitação de taxa
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
400 |
QpsLimitExceeded |
The qps limit of the queue is exceeded. |
O número de consultas por segundo (QPS) excedeu o limite. Reduza a taxa de requisições ou entre em contato com o suporte técnico para aumentar o limite de QPS. |
|
429 |
TooManyRequests |
The request is denied by cluster flow limiter for too many requests. |
A requisição foi limitada no nível do cluster. Implemente backoff exponencial e tente novamente. Para mais informações, consulte Política de limitação de taxa. |
Erros de servidor
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Solução recomendada |
|
500 |
InternalError |
Interal error. |
Ocorreu um erro interno no servidor. Tente novamente com backoff exponencial. Se o erro persistir, entre em contato com o suporte técnico e forneça o RequestId da resposta. |
|
500 |
InternalServerError |
Interal error. |
Ocorreu um erro interno no servidor. Tente novamente com backoff exponencial. Caso o erro persista, entre em contato com o suporte técnico e informe o RequestId da resposta. |