Troubleshooting¶
I Got UNKNOWN¶
Verdict.UNKNOWN means traversal reached Policy.maxDepth. Increase maxDepth, inspect the
throwable graph for cycles or deep wrappers, or use OnMaxDepth.THROW while debugging.
scanSuppressed Throws During Policy Construction¶
scanSuppressed = true requires allowAllocations = true.
val policy = Throwables.defaultPolicy.copy(
allowAllocations = true,
scanSuppressed = true,
)
Suppressed traversal needs allocation because suppressed exception lists are copied by platform APIs.
Interruption Was Not Restored¶
restoreInterruptIfNeeded only restores interruption signals that the current platform can detect.
On JVM and Android this includes InterruptedException and selected interruption-related I/O and
NIO exceptions. On non-JVM targets, interruption detection is currently a no-op.
A Suppressed Cause Was Not Followed¶
When suppressed scanning is enabled, followSuppressedCauses controls whether causes of suppressed
exceptions are traversed. Set it to true when third-party code may hide abort signals inside
suppressed exception causes.