diff --git a/src/main/java/com/aws/greengrass/mqttclient/MqttClient.java b/src/main/java/com/aws/greengrass/mqttclient/MqttClient.java index 7495873829..8a733e0d31 100644 --- a/src/main/java/com/aws/greengrass/mqttclient/MqttClient.java +++ b/src/main/java/com/aws/greengrass/mqttclient/MqttClient.java @@ -623,6 +623,7 @@ protected CompletableFuture publishSingleSpoolerMessage(AwsIotMqttClien logger.atError().log("Failed to publish the message via Spooler" + " after retried {} times and will drop the message", maxPublishRetryCount, throwable); + spool.removeMessageById(finalId); } } diff --git a/src/test/java/com/aws/greengrass/mqttclient/MqttClientTest.java b/src/test/java/com/aws/greengrass/mqttclient/MqttClientTest.java index 025446d415..af5c7949a5 100644 --- a/src/test/java/com/aws/greengrass/mqttclient/MqttClientTest.java +++ b/src/test/java/com/aws/greengrass/mqttclient/MqttClientTest.java @@ -719,7 +719,7 @@ void GIVEN_publish_request_unsuccessfully_WHEN_spool_single_message_THEN_not_ret client.publishSingleSpoolerMessage(awsIotMqttClient); verify(awsIotMqttClient).publish(any(), any(), anyBoolean()); - verify(spool, never()).removeMessageById(anyLong()); + verify(spool, times(1)).removeMessageById(anyLong()); verify(spool, never()).addId(anyLong()); }