On 30. Mar 2026, at 3.17, sev monster via dovecot <dovecot@dovecot.org> wrote:
As of 2.4.2, Dovecot no longer crashed and broken config vars no longer caused it to error out, so I finally (reluctantly) switched to it over 2.3, though I had to disable/change a few things to get it to work. However, my virtual namespaces were still broken, since the
autosubscribe = yesoption would cause the driver to attempt to create the virtual directories, and fail when they already existed. Turning off autosubscribe meant that the folders were not visible to my users without manually subscribing.
I can't reproduce this. This works fine in my tests:
mail_plugins { virtual = yes } namespace virtual { mail_driver = virtual mail_index_path = ~/virtual mail_path = /etc/dovecot/virtual hidden = yes list = yes prefix = virtual/ separator = / type = private mailbox all { auto = subscribe } }
What's your doveconf -n and what's the exact error message you're getting?
It seems this commit introduced a "feature" that restricts the virtual driver to the fs list format: https://github.com/dovecot/core/commit/b4a4a32361b8f0e68ef230add6467eddd0fff...
But why? Is fs the only format that works? But maildir++ worked in both 2.3 and in previous versions of 2.4. The 2.4.3 docs (still) also recommend switching to maildir++ if desired: https://doc.dovecot.org/2.4.3/core/plugins/virtual.html#virtual-mailbox-plug...
It was mainly intended to prevent accidentally using "index" layout with it. I'll see about getting maildir++ back.
In my config, I use maildir for everything. That means in my mailboxes and all my namespaces. But with this change, I must now use fs as my list format for the virtuals. But, I can't do that, because all
list = yesnamespaces in use by a mailbox must use the same list format...
I'm not sure what you mean by this. Perhaps that the namespace separator must be the same? That is configurable.