A cap or limit uses the wrong comparison (<= where < is intended, or vice-versa), letting one more item through than allowed or rejecting the final valid one. Small, but can break supply caps or allowlist sizes.
// require(totalMinted < MAX_SUPPLY); _mint(qty); // checks BEFORE adding qty, so a batch can push totalMinted past // MAX_SUPPLY by (qty-1).
require(totalMinted + qty <= MAX_SUPPLY, "exceeds cap"); // inclusive cap, checked correctly
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0253 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.