Sieve “redirect” fails after upgrade with “failed to check for duplicate forward” error

Hello Hestia community,

System & Versions

  • Ubuntu 24.04 (recently upgraded from 22.04)
  • HestiaCP vX.X.X (latest)
  • Dovecot/Postfix default setup (from Hestia installation)

Issue Description
After upgrading my server from Ubuntu 22.04 to 24.04 and updating to the latest Hestia release, I started seeing errors in my Sieve logs whenever a rule tries to forward (redirect) emails:

/home/<USER>/mail/<DOMAIN>/<MAILBOX>/dovecot.sieve.log

error: msgid=<...>: redirect action: failed to check for duplicate forward: internal error occurred: refer to server log for more information.

This happens for all forwarded emails across multiple mailboxes. The messages appear normally in the inbox, but the forward (redirect) never goes through.

What I’ve Tried So Far

  1. Checked Roundcube directories and corrected ownership/permissions under /etc/roundcube/, /var/log/roundcube/, etc. That’s all working fine.
  2. Verified that dovecot.sieve.log shows the same error for every message attempting a forward.
  3. Looked inside /home/<USER>/mail/<DOMAIN>/<MAILBOX>/Maildir/ for the .dovecot.lda-dupes file. It seems that some lock directories (.dovecot.lda-dupes.locks) are missing or don’t have the correct ownership.

Relevant Logs
Sample dovecot.sieve.log lines:

sieve: info: started log at 2025-02-06 ...
error: msgid=<...>: redirect action: failed to check for duplicate forward: internal error occurred: refer to server log for more information.

These lines repeat for each forwarded email attempt.

Questions / Requests

  1. Is there a recommended approach or script in HestiaCP to fix these .dovecot.lda-dupes.locks directories system-wide?
  2. Could the recent OS upgrade have changed default ownership (for instance from vmail:vmail to something else) and broken the Sieve lock checking?

Temporary Workaround
Manually creating the .dovecot.lda-dupes.locks directory with correct vmail:vmail ownership and 700 permissions for each affected mailbox fixes the issue. However, I have many mailboxes, so doing this manually is cumbersome.

Any Advice or Guidance?

  • If there’s a built-in Hestia script or recommended approach, please let me know!
  • Otherwise, is there a standard best practice for ensuring Dovecot’s Sieve forward lock directory is present for all users?

Thank you for your help. I appreciate any insights the community or developers can offer.

We don’t provide Postfix…

My bad, I got ChatGPT O1 to write it for me as I’ve been troubleshooting with it.

I think it’s a permissions issue.

I was sort of able to solve it temporarily with this: