Проблема в том, что вы неправильно обрабатываете исключение, подавляя причину root (или что вы объявили свой класс исключения для подавления любых переданных трассировок стека исключений). Фактически выбрасываемое исключение - это исключение вашего собственного бизнеса.
Вы не разместили содержимое своего метода: com.company.ingest.delegate.BaseDelegate.insertRecords (BaseDelegate. java: 537), но основываясь на том, что вы опубликовали, я собираюсь предположить, что метод выглядит примерно так:
public void insertRecords(...) {
try {
repository.save(...);
} catch (Exception exception) {
throw new com.company.common.exception.ERDException(exception.toString());
}
}
Это объясняет, почему генерируемое и регистрируемое исключение не содержит никакой значимой информации. Исключение, которое вы поймали, содержит само сообщение. Он заключает в себе еще одно исключение, которое (мы предполагаем) содержит причину root.
Если мое предположение о вашем методе верно, то следующее изменение предоставит root причину в следующий раз, когда произойдет ошибка, при условии, что ваше исключение передает параметры суперклассу (вплоть до Throwable):
public void insertRecords(...) {
try {
repository.save(...);
} catch (Exception exception) {
throw new com.company.common.exception.ERDException("Unable to insert record", exception);
}
}