Module 12 · Lesson 25 of 25

Top 10 errors and their fixes

Part of Dovecot: IMAP/POP3 at Production Scale — Troubleshooting, Forensics & Common Errors.

Error Cause Fix
auth failed (right password) userdb miss Check user_query, verify mailbox path exists
Mailbox doesn't exist mail_location wrong doveconf -n mail_location and inspect path
UIDVALIDITY changed Mailbox recreated or replication conflict Check dsync logs; restore from backup if data lost
Permission denied: dovecot.index.log Wrong ownership on index/control chown -R vmail:vmail /var/indexes
Quota exceeded Quota cap hit doveadm quota get -u user@d.com; raise quota_rule
SSL handshake failure Cert expired or wrong path openssl s_client; check renewal hook fired
Connection refused 4190 ManageSieve disabled Enable sieve in protocols = list
LMTP timeout Postfix → Dovecot socket Check /var/spool/postfix/private/dovecot-lmtp perms
Out of memory (vsz_limit) Pathological client Raise vsz_limit or kill the client connection
fts: indexing failed Solr down / disk full systemctl status solr; df -h

Master tool list:

  • doveconf -n — effective config
  • doveadm mailbox status -u <user> — mailbox state
  • doveadm fetch — read messages without IMAP
  • doveadm log find — show recent log files
  • doveadm stats dump — live metrics
  • doveadm director status — cluster view (with director)

Sign in to keep track of what you have read.

Pulse · self-hosted sending

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat — monitoring that tells you the fixConsulting — $65/hr, no retainer