Alt8Mail Documentation
Release 3.6.0 Main site

Search the manual

Search titles and page content.

Documentation / Help

Troubleshooting

Safe first checks for mail delivery, sign-in, TLS, imports and service failures.

Updated November 15, 2026 6 min read Maintained by Altgence

#Start with evidence

Troubleshoot the smallest failing surface first. Collect the exact symptom, the time in UTC, the affected mailbox or domain, and the relevant log lines. Do not restart the full stack, delete a queue or restore a backup until you have evidence that the action addresses the cause.

Useful read-only checks:

bash
systemctl --failed
systemctl status a8m-server a8m-admin alt8mail-control postfix dovecot nginx --no-pager
journalctl -u alt8mail-control --since '1 hour ago'
journalctl -u postfix --since '1 hour ago'
tail -n 100 /var/log/mail.log
postqueue -p
nginx -t
postfix check
doveconf -n
/opt/alt8mail/bin/alt8mail-control doctor

Treat queue deletion, mailbox deletion, retention runs, restores, package/release updates and service restarts as mutating operations. Get authorization and record what changed.

#Installation

SymptomLikely causeSafe first check
Installer stops during health checksClamAV can take time to load its first signaturestail -n 100 /var/log/a8m-install.log; systemctl status clamav-daemon; systemctl --failed
Installer refuses the hostNot Debian 12 or the expected architecturecat /etc/os-release; confirm the supported baseline in Requirements
Let's Encrypt failsDNS, port 80, CAA or a proxy in front of the hostCheck A records, port 80 reachability, /var/log/letsencrypt/letsencrypt.log, and certbot renew --dry-run
Certificate is self-signed after installDNS was not ready at install timeCorrect DNS and issue/assign a trusted certificate from System Control
Port 8808 is reachable from the internetInstaller firewall policy was not tightenedRestrict it at the provider firewall or VPN immediately
Mail is not listeningProvider blocks port 25 or Postfix is stoppedCheck ss -ltnp, systemctl status postfix, provider firewall and journalctl -u postfix

#Sign-in and admin access

SymptomLikely causeSafe first check
/admin/ returns 404Missing trailing slash or the admin service/nginx route is downTry /admin/; systemctl status a8m-admin; curl -fsS http://127.0.0.1:8081/api/health; nginx -t
Admin sign-in rejects MFAAdmin console supports TOTP/recovery, not a passkey-only credentialEnrol an authenticator app or use a recovery code; do not disable MFA policy without approval
Session expires unexpectedlyIdle/absolute session limits or a password/admin resetReview tenant session policy and recent admin audit events
System Control is unreachableWrong port, provider firewall, UFW or certificate warningUse port 8808, not 88008; curl -kfsS https://127.0.0.1:8808/healthz; systemctl status alt8mail-control; ss -ltnp; ufw status
Control rejects a writeMissing CSRF or insufficient roleRefresh the page/session; confirm the permission for the action
SSO/OIDC failsProvider unreachable, issuer/redirect mismatch, email/claim/domain/MFA evidenceCheck the fixed sso_error code, provider discovery and journalctl -u a8m-server
SAML metadata returns 503IdP metadata unreachable or invalidCheck IdP URL, SP certificate/key and server logs; restart clears the in-process replay cache

#Domains and DNS

SymptomLikely causeSafe first check
Domain verification failsMissing/wrong ownership TXT, MX, SPF, DKIM p= mismatch or bad DMARCUse the per-check detail in the admin domain drawer; query DNS with dig; wait for propagation
Outbound send is refusedDomain gate is not mail-readyComplete ownership, MX, SPF, DKIM and DMARC verification
Inbound mail is absentMX wrong, port 25 blocked, provider filteringdig MX; journalctl -u postfix; /var/log/mail.log; test from another external provider
Outbound mail queuesPort 25 blocked, PTR/reputation, SPF/DKIM/DMARC or relay issuepostqueue -p; inspect the queue detail; check the relay and deliverability surfaces
451 Temporary lookup failure after an alias changeStale Postfix lookup or virtual map issueInspect the alias lookup and Postfix logs; reload Postfix only after confirming the map
Mail client password rejectedUsing the web password incorrectly, mail-client policy off, MFA mismatch or wrong portConfirm full email address, IMAP/POP policy, IMAPS 993/submission 587, and app-password requirements for DAV

#Mail delivery and storage

SymptomLikely causeSafe first check
Queue growsUpstream relay, DNS, recipient throttling or Postfix policyInspect queue age and deferral reason; do not flush a queue with thousands of old messages
Mailbox disk is fullMaildir/Cabinet growth, versions, retainers or quota guardCheck df -h and storage volumes; increase capacity before retrying uploads
Dovecot hibernation/socket errorsSocket permissions or master process statejournalctl -u dovecot; compare the deployed Dovecot configuration
Missing message after deletionLegal hold, retention or a client-side actionCheck hold state and audit; do not restore blindly over live data
Imported mail is missing foldersSource was POP3 or the job excluded foldersCheck the fidelity report and source protocol
Import authentication failsFull address, password/token, provider policy or expired OAuthValidate source login again; use a fresh token or generic IMAP
Imported message is quarantinedClamAV detected malware or scan failedReview quarantine and logs; do not disable scanning

#Policy, DLP and licensing

SymptomLikely causeSafe first check
409 LEGAL_HOLD on deletionA tenant or mailbox legal hold is activeReview Compliance → Holds; do not work around it
422 DLP_BLOCKEDA DLP block rule matched at send or delivery recheckReview the rule and matched fields; edit the message or policy
403 LICENSE_FEATUREA paid capability is not present or has expiredCheck entitlements in Customer Admin/System Control; restart after updating the license if required
403 WHITE_LABELThe white-label entitlement is missingVerify the license feature set
409 SEAT_LIMITActive users exceed licensed seatsReview the seat meter; suspend or close accounts through the supported lifecycle
AI requests fail with budget/config errorsNo provider configured or the monthly budget is exhaustedReview tenant AI configuration and usage; do not assume AI is free or unlimited
Office is not readyDocker/agent unhealthy, JWT missing or public URLs invalidOpen System Control → Office and review readiness, services and logs

#Updates and restore

SymptomLikely causeSafe first check
Update fails before activationDisk space, Git/deploy key, release asset or checksumtail /var/log/alt8mail-update.log; ls -lt /var/backups/alt8mail; check free space
Update fails during health checkMigration, service or readiness failureLet rollback finish; read the updater log and health checks; keep the backup directory
Rollback incompleteDatabase restore failedUse scripts/alt8mail-recover-db.sh <backup-dir> from the release tooling and preserve the logs
Restore is requested for one mailboxFull restore is a disaster-recovery operationUse mailbox/folder restore preview and additive doveadm import, never a full archive restore
Backup missing MaildirsMaildirs were not selectedCreate a new backup with Maildir message stores explicitly selected
Control backup is unencryptedPanel archives are plain .tar.gzEncrypt before off-host storage; protect and test the key

#When to escalate

Escalate when:

  • mail is not flowing in either direction after DNS and service checks;
  • a restore or update has failed or is partially applied;
  • a security control is bypassed or you suspect compromise;
  • the issue would require database surgery, direct queue deletion, retention changes or a manual secret rotation;
  • you need a capability whose entitlement is not active.

For the support process, see Support. For security issues, follow the repository security policy rather than publishing exploit details.

Need a hand?

We can help with the next step.

Talk to the team