You could maybe look into adding a method to BasicAction for reporting deferred exceptions. In the event that the edge case you mention occurs you would store the (single) exception in BasicAction state. When asked for the list of deferred exceptions you would see if you have the one phase error and return that, otherwise you would consult the failedList.