Diagnose Exim queued and frozen messages
Inspect queue summaries, message logs, and retry causes without deleting mail or forcing every message through a broken route.
Reviewed
Treat the spool as outstanding delivery work, not disposable cache. A queue growing after an application deployment may reflect recipient policy, DNS, routing, remote throttling, or a local transport failure.
Start with read-only evidence
The Exim command reference describes queue listing and message-log inspection:
exim -bp
Use the documented per-message log inspection for the selected queue ID when permissions allow. Do not publish message headers/bodies merely to show that a message exists.
- Record the message ID, age, unresolved recipients, and whether the message is frozen.
- Correlate main/reject/panic logs with the failing router or transport.
- Separate transient destination failures from permanent invalid recipients and local configuration errors.
- Verify disk space, spool ownership, and the active retry policy before deciding on recovery.
Retry only after understanding the cause
A blanket forced queue run does not fix bad DNS or an unauthorized smarthost login. A thaw/retry can deliver real mail; deletion loses it. Require an operator to approve the specific action and preserve enough evidence for reconciliation.
After repairing the cause, follow a controlled message through the intended transport and verify the final outcome. Keep application resend logic separate: replaying the original send may create another queued copy while the first remains deliverable. Back up configuration and spool consistently before disruptive upgrades or host replacement.