Troubleshooting & Reference ยท Article 7.17
"My client got a reminder email but they already paid"
Rare race condition โ reminder dispatched moments before the payment confirmation propagated. The reminder beat task re-checks payment status at the moment of send; if paid, it skips. If you see this, the gap was within seconds.
A reminder email going to a paid client is embarrassing but harmless. Clozo guards against it twice (the timeline-event idempotency check + the per-dispatch payment-status re-check), but a tight race between webhook processing and dispatch can slip through. If it happens once, apologise and move on; if it happens repeatedly, that's a bug we want to know about.
Step by step
Apologise to the client.
Personal message: "Apologies โ that reminder went out moments before our system saw your payment. You're all settled."
Verify payment status
is correctly
Paidin Clozo. If it isn't, that's a different issue (Section 10.14).If reproducible (multiple paid proposals getting reminders)
, contact support.
Why this works this way
The beat task send_overdue_reminders (tasks.py L2107) runs hourly and queues per-tier dispatches. The dispatcher send_overdue_reminder_email (L2165) re-checks proposal.status != Proposal.STATUS_OVERDUE at the moment of send and skips if paid. The race window is the few hundred milliseconds between the re-check and the actual Resend API call.
If the reminder email did fire on a paid proposal, the payment must have arrived within that narrow window. Highly unusual.
Troubleshooting
Keep reading
Refunds & Notifications
Email: Auto-reminders for overdue invoices (3 / 7 / 14 day escalation)
When a final invoice goes unpaid past its due date, Clozo sends three escalating reminders to the client at +3, +7, and +14 days. Tone moves from gentle to formal; the +14-day reminder cites the EU Late Payment Directive.
Lifecycle
Status: Awaiting final payment, then Paid
You've issued the final invoice. The client now owes the remaining balance (full amount minus the deposit they already paid). When the money lands, status flips to `Paid` and the final receipt is generated.
Refunds & Notifications
Every email Clozo sends, in one table
Clozo dispatches 13 distinct transactional emails across the proposal and amendment lifecycle. This page lists each one, who triggers it, who receives it, and what's attached.