diff --git a/mateclaw-server/src/main/java/vip/mate/workspace/conversation/ConversationService.java b/mateclaw-server/src/main/java/vip/mate/workspace/conversation/ConversationService.java index 81c6a927..06128861 100644 --- a/mateclaw-server/src/main/java/vip/mate/workspace/conversation/ConversationService.java +++ b/mateclaw-server/src/main/java/vip/mate/workspace/conversation/ConversationService.java @@ -21,6 +21,7 @@ import vip.mate.workspace.conversation.vo.MessageVO; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.Paths; import java.time.LocalDateTime; @@ -791,7 +792,17 @@ public class ConversationService { * 清理会话关联的附件文件 */ public void cleanAttachmentFiles(String conversationId) { - Path dir = UPLOAD_ROOT.resolve(conversationId); + Path dir; + try { + dir = UPLOAD_ROOT.resolve(conversationId); + } catch (InvalidPathException e) { + // Conversation id contains characters illegal on this filesystem + // (e.g. ':' in cron: on Windows). No attachments could + // ever have been written under such an id on this OS, so there + // is nothing to clean. + log.debug("Skipping attachment cleanup for non-path-safe conversation id: {}", conversationId); + return; + } if (!Files.exists(dir)) { return; }