Add rethrow handling to OnFail