A 100% code with a 50 EUR cap once cleared a 3 EUR basket and still tried to take 50. The cap sat after the total clamp. In promocodes we moved it into the amount step: min(amount, cap) first, clamp second. A 3 EUR basket now gives back 3 EUR. Worth checking where yours caps.
Was this useful?