Update to latest dovecot : Fail to start

ssgill

Verified User
Joined
May 9, 2012
Messages
181
Hello just updated dovecot from directadmin panel and dovecot is failing to start with this error

systemctl status dovecot
â— dovecot.service - Dovecot IMAP/POP3 email server
Loaded: loaded (/etc/systemd/system/dovecot.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2025-04-25 12:19:43 MDT; 8s ago
Process: 1719627 ExecStart=/usr/sbin/dovecot -F (code=exited, status=89)
Main PID: 1719627 (code=exited, status=89)
CPU: 6ms

Apr 25 12:19:43 matrix.domain.com systemd[1]: Started Dovecot IMAP/POP3 email server.
Apr 25 12:19:43 matrix.domain.com dovecot[1719627]: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/90-master-user.conf line 2: passdb { } is missing section name
Apr 25 12:19:43 matrix.domain.com systemd[1]: dovecot.service: Main process exited, code=exited, status=89/n/a
Apr 25 12:19:43 matrix.domain.com systemd[1]: dovecot.service: Failed with result 'exit-code'.

/etc/dovecot/conf.d/90-master-user.conf

cat /etc/dovecot/conf.d/90-master-user.conf
auth_master_user_separator = +
passdb {
driver = passwd-file
args = /etc/dovecot/passwd.masterusers
master = yes
result_success = continue
}
passdb {
driver = shadow
}
userdb {
driver = passwd
}

Thanks
 
Reverted back to version 2.3.21.1 and now it's working. Looks like i jumped to version 2.4.x and some thing didn't worked right.
Only custom for dovecot i have is
usr/local/directadmin/custombuild/custom/dovecot/conf.d/90-sieve.conf
#protocols = imap pop3 lmtp sieve

#Managesieve service (allows rules editing on client-side)
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
process_min_avail = 4
}

service managesieve {
}

protocol sieve {
managesieve_max_line_length = 65536
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_max_compile_errors = 5
managesieve_logout_format = bytes=%i/%o
log_path = /var/log/dovecot-sieve-errors.log
info_log_path = /var/log/dovecot-sieve.log
}

plugin {
#More details: http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration
# The location of the user's main script storage. The active script
# in this storage is used as the main user script executed during
# delivery. The include extension fetches the :personal scripts
# from this location. When ManageSieve is used, this is also where
# scripts are uploaded. This example uses the file system as
# storage, with all the user's scripts located in the directory
# `~/sieve' and the active script (symbolic link) located at
# `~/.dovecot.sieve'.
sieve = file:~/sieve;active=~/.dovecot.sieve

# If the user has no personal active script (i.e. if the location
# indicated in sieve= does not exist or has no active script), use
# this one:
sieve_default = /var/lib/dovecot/sieve/default.sieve

# The include extension fetches the :global scripts from this
# location.
sieve_global = /var/lib/dovecot/sieve/global/


# Always send vacation messages with the SMTP MAIL FROM envelope address set
# to the recipient. This is needed for the vacation response to be DKIM
# signed by Exim. See
# <https://wiki2.dovecot.org/Pigeonhole/Sieve/Extensions/Vacation> for more
# information.
sieve_vacation_send_from_recipient = yes


}
But error is not related to this file, it was thrown for "/etc/dovecot/conf.d/90-master-user.conf"

Any idea what went wrong, for future upgrade.

Thanks
 
Hello,

It is a custom file /etc/dovecot/conf.d/90-master-user.conf from your own installation. A default installation of Dovecot from DirectAdmin does not use /etc/dovecot/conf.d/90-master-user.conf, you should follow documentation as Kristian mentioned and update the file, or revert back (as you already did).

But error is not related to this file, it was thrown for "/etc/dovecot/conf.d/90-master-user.conf"
 
Reverted back to version 2.3.21.1 and now it's working. Looks like i jumped to version 2.4.x and some thing didn't worked right.
Only custom for dovecot i have is
usr/local/directadmin/custombuild/custom/dovecot/conf.d/90-sieve.conf

But error is not related to this file, it was thrown for "/etc/dovecot/conf.d/90-master-user.conf"

Any idea what went wrong, for future upgrade.

Thanks
This happened to me too. Dovecot 2.4 is completely incompatible (forward AND backward) with 2.3 and earlier. You must change all the configurations to make it work again.

I even ditched dovecot altogether for that reason, and replaced it with popa3d. More details here:

I expect this incompatible version change is going to cause huge service disruptions in the coming months and years, all over the world.
 
Hello, reviving this thread again because had to upgrade dovecot 2.3 to 2.4
Last time i had to rollback because of configuration issues. It was mentioned in the thread that dovecot config folder has custom file "/etc/dovecot/conf.d/90-master-user.conf ". I am not sure why it was placed there in first place.
File list in /etc/dovecot/conf.d#

-rw-r--r-- 1 root root 148 Jan 9 10:00 90-fts-xapian.conf
-rw-r--r-- 1 root root 296 Jan 9 11:06 90-master-user.conf
-rw-r--r-- 1 root root 32 Jan 9 10:00 90-quota.conf
-rw-r--r-- 1 root root 612 Jan 9 10:00 90-sieve.conf
-rw-r--r-- 1 root root 430 Jun 23 2021 90-special-folders.conf
-rw-r--r-- 1 root root 42 Jan 9 10:00 95-sni.conf

Issue was from 90-master-user.conf
auth_master_user_separator = +
passdb {
driver = passwd-file
args = /etc/dovecot/passwd.masterusers
master = yes
result_success = continue
}
passdb {
driver = shadow
}
userdb {
driver = passwd
}
passdb passwd-file {
passwd_file_path = /etc/dovecot/passwd.masterusers
}

I changed content of this file to

passdb passwd-file {
passwd_file_path = /etc/dovecot/passwd.masterusers
}

With this dovecot 2.4 is working, its live server and mail on thunderbird is working fine. I would like to get dovecot configuration aligned with stock settings. What needs to be done, i am not sure what files come in default setup. Any help would be appreciated.

Thanks for your time.
 
Dovecot from DirectAdmin does not use the file. So you will need to review the setup and check what you have there in the file (whether or not it contains any passwords)
There is one user: pass in file, i believe its for master password that was used during migration. Not needed any more.
So technically, i can remove 90-master-user.conf from dovecot config folder because this login is not needed anymore.

Thanks
 
Back
Top