diff --git a/turms-service/src/main/java/im/turms/service/domain/message/service/MessageService.java b/turms-service/src/main/java/im/turms/service/domain/message/service/MessageService.java index b0c7f34ff2..ef51ced946 100644 --- a/turms-service/src/main/java/im/turms/service/domain/message/service/MessageService.java +++ b/turms-service/src/main/java/im/turms/service/domain/message/service/MessageService.java @@ -606,7 +606,9 @@ public Mono saveMessage( if (messageId == null) { messageId = node.nextLargeGapId(ServiceType.MESSAGE); } - if (!persistRecord) { + // Always allow persisting records if the message is a system message + // as some system messages use records to pass custom data. + if (!persistRecord && !isSystemMessage) { records = null; } if (!persistPreMessageId) {