Dovecot 2.4 - Issue with dict Configuration after Upgrade
Andreas Günther
dovecot.user at linuxmaker.cloud
Mo Nov 3 11:12:02 CET 2025
Hello everyone,
I am currently performing a system upgrade from Debian 12 to 13, which also
includes upgrading Dovecot from version 2.3.19.1 to 2.4.1-4. After the
upgrade, I'm encountering an issue with my dovecot.conf, specifically at line
7.
Previously, the dict definition in my dovecot.conf was as follows:
auth_mechanisms = plain login
dict {
sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
listen = *
After the upgrade, I changed the definition to:
dovecot_config_version = 2.4.1
auth_mechanisms = plain login
dict {
socket {
path = /var/run/dovecot/dict
mode = 0660
user = vmail
group = vmail
}
quota {
driver = mysql
connect = "host=192.168.1.70 dbname=postfix user=postfix
password=topsecret"
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
}
}
listen = *
However, Dovecot fails to start and gives the following error:
Nov 03 10:55:28 mx2 systemd[1]: Starting dovecot.service - Dovecot IMAP/POP3
email server...
Nov 03 10:55:28 mx2 dovecot[3985567]: doveconf: Fatal: Error in configuration
file /etc/dovecot/dovecot.conf line 7: dict { } is missing section name
Nov 03 10:55:28 mx2 systemd[1]: dovecot.service: Main process exited,
code=exited, status=89/n/a
Nov 03 10:55:28 mx2 systemd[1]: dovecot.service: Failed with result 'exit-
code'.
Nov 03 10:55:28 mx2 systemd[1]: Failed to start dovecot.service - Dovecot
IMAP/POP3 email server.
Unfortunately, I couldn't find any relevant information regarding this change
in the dict configuration under Dovecot 2.3-to-2.4 Upgrade
. The error message suggests that the dict section is missing a section name,
but I'm not sure how to structure this correctly after the upgrade.
My questions:
Do I need to completely convert the contents of dovecot-dict-sql.conf into SQL
queries and abandon the dict configuration entirely?
If so, how should I define the MySQL connection in Dovecot 2.4? Should I move
it into the passdb sql {} block instead?
Thanks in advance for your help!
Best regards,
Andreas
Mehr Informationen über die Mailingliste Dovecot