The escape hatch on the duplicate index. duplicate_ack is null on every ordinary invoice, which is exactly what makes ordinary repeats collide. A user shown the colliding invoice who confirms this is a genuinely separate charge gets a nonce written to that column, and only then can the row exist.
Also called: equal draws · same amount twice on purpose · duplicate override · acknowledge duplicate
- 1The dialog offers a deliberately differently-worded second action — not a retry of the same button.
- 2acknowledgeDuplicate writes the invoice's own id into duplicate_ack.
- 3The acknowledgement must be written BEFORE the total is saved, because writing the total is what trips the index.
- 4Acknowledged rows are skipped when looking for a colliding invoice — somebody already answered that question.
Blocking duplicate invoices outright would break the legitimate case, because two draws of the same amount on the same job on the same day are ordinary in construction. The block names the existing invoice it matched and its amount, and a builder who confirms this is a separate charge is let through — on the record, as a stated decision rather than an accident. The wording never offers to try again, since a retry is what causes this in the first place.
- A duplicate guard that would otherwise block real equal-instalment billing.
- Overrides happening silently with no record of who decided.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →