O erro "message not exist" ocorre ao excluir uma mensagem no Simple Message Queue (anteriormente MNS) com um receipt handle expirado. Ajuste o parâmetro VisibilityTimeout para resolver esse problema.
Problema
A seguinte mensagem de erro aparece ao excluir uma mensagem no SMQ:
message not exist
Causa
O receipt handle torna-se inválido após o término do visibility timeout period:
Quando um consumidor recebe uma mensagem, o status dela muda de ativo para inativo.
Durante o
visibility timeout period, é possível excluir a mensagem.Após o término do
visibility timeout period, a mensagem volta a ficar ativa. Outros consumidores podem consumi-la e o receipt handle se torna inválido.Exclua uma mensagem com um receipt handle inválido retorna o erro "message not exist".
Solução
Defina o VisibilityTimeout com um valor que permita tempo suficiente para processar e excluir mensagens. Em seguida, exclua a mensagem na próxima vez que ela for recebida. Considere as seguintes compensações:
Um valor muito baixo pode não oferecer tempo suficiente para excluir a mensagem antes que o handle expire.
Um valor de
VisibilityTimeoutmuito alto atrasa o reprocessamento após uma falha.