This issue is indeed a defect in the logging framework and is not a result of a bug in the host application, as suggested here https://jira.qos.ch/browse/LOGBACK-1027?focusedCommentId=17197&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17197 Nowhere in the Java language spec, Throwable source, or Exception source documentation does it indicate that cyclical causes of Throwables, suppressed or otherwise, is a misuse, bad practice, or otherwise disallowed. This is further supported by the Throwable.printStackTrace() method directly supporting instances where causes have cycles. As of writing, this issue will affect all applications using Logback alongside Kotlin Coroutines, as there are situations where where the Coroutine framework will make use of circular references in Exceptions, and IMHO it is a valid use case. https://github.com/Kotlin/kotlinx.coroutines/issues/1264 |