A custom checkpoint that is in alarm state will generate an alarm, and then on the next cycle when the checkpoint fires again, and it is still in error state the original alarm will clear and a new alarm will get generated.
This problem happens when there is a $ in the row identification:
Row identification is used for building the suppression key, so in the case above when a $ is used it is using the variable or the current output of the 'numbers' column. If the name 'numbers' is used without the $ than the suppression key is built with the word 'numbers'.
As an example if I had $numbers as my Row identification and that number is changing with each poll cycle, it would clear the previous alarm, and create a new one with the new number that is in the 'numbers' column.