diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java index 351373cf8..769df0ec0 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java @@ -126,7 +126,14 @@ public class WarnServiceBean implements WarnService { Long serverId = server.getId(); String warnNotificationMessage = templateService.renderTemplate(WARN_NOTIFICATION_TEMPLATE, warnNotification, server.getId()); List futures = new ArrayList<>(); - futures.add(messageService.sendMessageToUser(warnedMember.getUser(), warnNotificationMessage)); + CompletableFuture notificationFuture = new CompletableFuture<>(); + messageService.sendMessageToUser(warnedMember.getUser(), warnNotificationMessage).whenComplete((message, throwable) -> { + if(throwable != null) { + log.warn("Failed to notify user {} of warning {} in guild {}.", warnedMember.getId(), warningId, serverId); + } + notificationFuture.complete(null); + }); + futures.add(notificationFuture); log.debug("Logging warning for server {}.", server.getId()); if(featureFlagService.getFeatureFlagValue(ModerationFeatureDefinition.INFRACTIONS, serverId)) { Long infractionPoints = configService.getLongValueOrConfigDefault(WarningFeatureConfig.WARN_INFRACTION_POINTS, serverId);