This exception occurs when the @Transactional annotation is added to the CohortDefinitionPersister interface. This breaks the HandlerUtil as it cannot find the CohortDefinitionPersister handlers due to Spring has turned them into dynamic proxy classes (with names $Proxy56). I think this issue needs to be fixed in order to continue debugging #1588 because we cannot tell whether the issue is (1) the transaction is not propagating through the Service->Persister->Dao or (2) some weird Hibernate bug dealing with an object graph that is very deep.
APIException: No interface org.openmrs.module.cohort.definition.persister.CohortDefinitionPersister is found that is able to handle a class org.openmrs.module.cohort.definition.PatientCharacteristicCohortDefinition