It's a very standard move in a game-based security proof to have a transition in which we "abort" on some event such as a hash collision; the two games are identical apart from the abort step, and we add the probability of the abort to the advantage term at the end. Example: https://eprint.iacr.org/2023/1368
I'm curious if anyone has explicitly formalized and justified this step. The way aborts are used seems very similar to but slightly different from either the "failure events" in Shoup's paper or the "bad events" in Bellare and Rogaway; neither of those papers contains the word "abort". In particular, it's clear that in the case of "failure events"/"bad events" that the attacker keeps making queries and still returns a final result, while it's not clear to me what happens after an "abort".
Note that this is not related to aborts in the protocol, as in eg Dilithium signing or Kyber encapsulation rejection; this is to do with aborts used as a tool in proofs about a protocol.