diff --git a/Adaptors/PubSub/src/QueueMessageHandler.cs b/Adaptors/PubSub/src/QueueMessageHandler.cs index 50ad11fb7..c767834ee 100644 --- a/Adaptors/PubSub/src/QueueMessageHandler.cs +++ b/Adaptors/PubSub/src/QueueMessageHandler.cs @@ -67,7 +67,6 @@ await autoExtendAckDeadline_.Stop() case QueueMessageStatus.Failed: case QueueMessageStatus.Running: case QueueMessageStatus.Postponed: - case QueueMessageStatus.Poisonous: await subscriberServiceApiClient_.ModifyAckDeadlineAsync(subscriptionName_, new[] { @@ -79,6 +78,7 @@ await subscriberServiceApiClient_.ModifyAckDeadlineAsync(subscriptionName_, break; case QueueMessageStatus.Cancelled: case QueueMessageStatus.Processed: + case QueueMessageStatus.Poisonous: await subscriberServiceApiClient_.AcknowledgeAsync(subscriptionName_, new[] { diff --git a/Adaptors/RabbitMQ/src/QueueMessageHandler.cs b/Adaptors/RabbitMQ/src/QueueMessageHandler.cs index 5c6b24313..3569e189b 100644 --- a/Adaptors/RabbitMQ/src/QueueMessageHandler.cs +++ b/Adaptors/RabbitMQ/src/QueueMessageHandler.cs @@ -63,28 +63,29 @@ public ValueTask DisposeAsync() switch (Status) { case QueueMessageStatus.Postponed: + case QueueMessageStatus.Failed: + case QueueMessageStatus.Running: + case QueueMessageStatus.Waiting: /* Negative acknowledging this message will send it to the retry exchange, see PullQueueStorage.cs */ channel_.BasicNack(basicGetResult_.DeliveryTag, false, true); break; - case QueueMessageStatus.Failed: - case QueueMessageStatus.Running: case QueueMessageStatus.Cancelled: - - case QueueMessageStatus.Waiting: - case QueueMessageStatus.Processed: - - case QueueMessageStatus.Poisonous: - /* Failed, Processed and Poisonous messages are - * acknowledged so they are not send to Retry exchange */ channel_.BasicAck(basicGetResult_.DeliveryTag, false); break; + + case QueueMessageStatus.Poisonous: + channel_.BasicNack(basicGetResult_.DeliveryTag, + false, + false); + break; + default: throw new ArgumentOutOfRangeException(nameof(Status), Status,