Apart from the time points which have been mentioned above, I would like to explain BOPF's general behavior when determinations return failed keys:
If a determination returns failed keys, BOPF assumes that the determination is missing some input values. Maybe the user has not finished entering data. BOPF will re-execute the determination for the same keys again, until the determination does not return failed keys any more. If the determination still returns failed keys when SAVE is executed, BOPF will reject the SAVE.