warning: /usr/lib/postfix/sbin/virtual: bad command startup -- throttling
Hello,
I have set up a new dovecot mail server using MySQL backend. All users, passwords and related data are in SQL. I'm seeing the following warning in the mail.log file:
warning: /usr/lib/postfix/sbin/virtual: bad command startup -- throttling
It appears to have no impact on mail delivery. Since paths to user directories are yielded by the SQL database, I'm left wondering why this is even a warning.
Regards, David Koski dkoski@sutinen.com
2.4.1-4 (7d8c0e5759): /etc/dovecot/dovecot.conf
Pigeonhole version 2.4.1-4 (0a86619f)
OS: Linux 6.12.69+deb13-amd64 x86_64 Debian 13.5
Hostname: B914839.online-server.cloud
4 default setting changes since version 2.4.0
dovecot_config_version = 2.4.0 auth_debug = yes auth_debug_passwords = yes auth_mechanisms = plain login gssapi cram-md5 digest-md5 debug_log_path = /var/log/dovecot/debug.log default_vsz_limit = 512M dovecot_storage_version = 2.4.0 fts_autoindex = yes fts_autoindex_max_recent_msgs = 999 fts_search_add_missing = yes info_log_path = /var/log/dovecot/info.log lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes log_debug = category=auth log_path = /var/log/dovecot/dovecot.log mail_driver = maildir mail_plugins { quota = yes } mailbox_directory_name_legacy = no protocols { imap = yes lmtp = yes sieve = yes } quota_exceeded_message = User %{user} has exceeded the storage volume. / User %{user} has exhausted allowed storage space. sieve_plugins { sieve_imapsieve = yes sieve_extprograms = yes } sql_driver = mysql ssl = required namespace inbox { inbox = yes prefix = separator = . type = private mailbox Drafts { auto = subscribe special_use = "\\Drafts" } mailbox Outbox { special_use = "\\Drafts" } mailbox Junk { auto = subscribe special_use = "\\Junk" } mailbox "Junk Email" { auto = no special_use = "\\Junk" } mailbox "Junk E-mail" { auto = no special_use = "\\Junk" } mailbox Trash { auto = subscribe special_use = "\\Trash" } mailbox "Deleted Items" { auto = no special_use = "\\Trash" } mailbox Spam { auto = no special_use = "\\Junk" } mailbox Archives { auto = no special_use = "\\Archive" } mailbox Sent { auto = subscribe special_use = "\\Sent" } mailbox "Sent Items" { auto = no special_use = "\\Sent" } mailbox "Sent Messages" { auto = no special_use = "\\Sent" } } service imap-login { inet_listener imap { } inet_listener imaps { } } service pop3-login { inet_listener pop3 { } inet_listener pop3s { } } service submission-login { inet_listener submission { } inet_listener submissions { } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service imap { } service pop3 { } service submission { } service auth { unix_listener auth-userdb { group = postfix } unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } } service auth-worker { } service dict { unix_listener dict { } } ssl_server { cert_file = /etc/letsencrypt/live/mail.sutinen.com/fullchain.pem key_file = /etc/letsencrypt/live/mail.sutinen.com/privkey.pem } protocol lda { mail_plugins { sieve = yes quota = yes } } protocol imap { mail_plugins { imap_sieve = yes } } protocol lmtp { mail_plugins { quota = yes sieve = yes notify = yes push_notification = yes } postmaster_address = postmaster@sutinen.com } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service managesieve { } sieve_script personal { active_path = /var/vmail/sieve/%{user | domain }/%{user | username }/active-script.sieve driver = file path = /var/vmail/sieve/%{user | domain }/%{user | username }/scripts type = personal } sieve_script spam-global { path = /var/vmail/sieve/global/spam-global.sieve type = before } mailbox Spam { sieve_script spam { cause = copy path = /var/vmail/sieve/global/learn-spam.sieve type = before } } imapsieve_from Spam { sieve_script ham { cause = copy path = /var/vmail/sieve/global/learn-ham.sieve type = before } } mysql /var/run/mysqld/mysqld.sock { dbname = vmail password = # hidden, use -P to show it user = vmail } passdb sql { driver = sql query = CALL password_query('%{user}', '%{password}') } userdb sql { driver = sql query = CALL user_query_dovecot('%{user | username}', '%{user | domain}') }
On 22/05/2026 01:06 EEST David Koski via dovecot <dovecot@dovecot.org> wrote:
Hello,
I have set up a new dovecot mail server using MySQL backend. All users, passwords and related data are in SQL. I'm seeing the following warning in the mail.log file:
warning: /usr/lib/postfix/sbin/virtual: bad command startup -- throttling
It appears to have no impact on mail delivery. Since paths to user directories are yielded by the SQL database, I'm left wondering why this is even a warning.
Which is postfix warning, not dovecot.
Aki
On Thursday, May 21, 2026 10:06:54 PM Coordinated Universal Time David Koski via dovecot wrote:
Hello,
I have set up a new dovecot mail server using MySQL backend. All users, passwords and related data are in SQL. I have also setup a new mailserver using: https://pieterbakker.com/build-mail-server-debian-13-complete-series/ It works great and is DANE compliant. If need be you (I myself) (can) set it up in a day or two.
-Jason
participants (3)
-
Aki Tuomi
-
David Koski
-
Jason Marinaro