Hello, In some conditions with FTS enabled I get this warning:
Warning: Expunged message reappeared, giving a new UID Here is how I can reproduce it: I have a test setup with a (postfix) virtual alias multi-al...@example.com which delivers emails to user1@ and user2@ If * I send an email to multi-alias@ * expunge user1@ mailbox with doveadm expunge -u us...@example.com mailbox Inbox ALL then the warning fires. If * FTS plugin is disabled (I tried with squat and xapian), or * multi-alias@ redirects to only user1@ * I send the email directly to user1@ then no warning. Can I just ignore the warning ? dovecot -n: # 2.3.10.1 (a3d0e1171): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: Linux 5.4.51 x86_64 ext4 # Hostname: server auth_debug = yes auth_mechanisms = plain login base_dir = /run/dovecot2 default_internal_group = dovecot2 default_internal_user = dovecot2 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lmtp_save_to_detail_mailbox = yes mail_access_groups = virtualMail mail_debug = yes mail_gid = virtualMail mail_location = maildir:/var/vmail/%d/%n:INDEX=/var/mailindex mail_plugins = " fts fts_squat quota" mail_uid = virtualMail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded- character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve namespace inbox { inbox = yes location = prefix = separator = . } passdb { args = /run/dovecot2/passwd driver = passwd-file } plugin { fts = squat fts_autoindex = yes fts_autoindex_exclude = Junk fts_enforced = yes fts_squat = partial=4 full=10 imapsieve_mailbox1_before = file:/var/lib/dovecot/imap_sieve/report- spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Junk imapsieve_mailbox2_before = file:/var/lib/dovecot/imap_sieve/report- ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk imapsieve_mailbox2_name = * plugin = fts fts_squat quota = maildir:User quota quota_grace = 10%% quota_rule = *:storage=100G quota_status_nouser = DUNNO quota_status_overquota = 552 5.2.2 Mailbox is full quota_status_success = DUNNO sieve = file:/var/sieve/%u/scripts;active=/var/sieve/%u/active.sieve sieve_after = /var/lib/dovecot/sieve/after sieve_default = file:/var/sieve/%u/default.sieve sieve_default_name = default sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_pipe_bin_dir = /nix/store/7cdslbbivi1b3yagvw18k8m4nfs2n4ym- pipe_bin/pipe/bin sieve_plugins = sieve_imapsieve sieve_extprograms } pop3_uidl_format = %08Xv%08Xu protocols = sieve imap lmtp sendmail_path = /run/wrappers/bin/sendmail service auth { unix_listener auth { group = postfix mode = 0660 user = postfix } user = root } service lmtp { unix_listener dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service quota-status { client_limit = 1 executable = /nix/store/5b9lp6w8jzca86djawnk6aqc3n4p2mh0-dovecot- 2.3.10.1/libexec/dovecot/quota-status -p postfix inet_listener { port = 12340 } } ssl = required ssl_cert = </var/certs/cert-mail.example.com.pem ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 ssl_prefer_server_ciphers = yes userdb { args = /run/dovecot2/passwd driver = passwd-file } verbose_ssl = yes protocol imap { mail_max_userip_connections = 100 mail_plugins = " fts fts_squat quota imap_quota imap_sieve" namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = no special_use = \Trash } prefix = } } protocol pop3 { mail_max_userip_connections = 100 } protocol lmtp { mail_plugins = " fts fts_squat quota sieve" }