Stack trace beautifier
Paste a long Java stack trace. Get the root cause, the line of your code that failed, and a short version with the framework noise folded away.
The chain, outermost first
Why Java stack traces are so long
A Spring Boot request passes through dozens of layers before it reaches your code: the servlet container, filters, the dispatcher servlet, proxies added for transactions and security, reflection, and finally your controller. When something fails, each layer adds frames, and exceptions wrapped by other exceptions repeat the story under every "Caused by". A 300-line trace commonly contains three or four lines that matter.
This tool reads the trace, groups consecutive framework frames (Spring, Tomcat, Hibernate, Netty, the JDK and about forty more families, plus generated CGLIB proxies) into one folded line, and always keeps the top frame of each exception because that is where it was thrown. Your own code stays fully visible, and the root cause is shown first.
Everything is processed in the page. Nothing is sent anywhere, so you can paste production traces safely. If you want the same discipline in your logs, a Logback converter such as %rEx or a stack-trace filter in your logging config achieves a similar result at the source.
Frequently asked questions
Is my stack trace uploaded?
No. The trace is parsed in your browser and never leaves your device. That matters, because traces expose internal class names, package structure, SQL fragments and sometimes user data.
How does it decide what is "my" code?
By default anything that is not a known framework or JDK package counts as yours. For precision, enter your own package prefix (for example com.acme.shop) and only frames in it are treated as application code.
What does "... 62 common frames omitted" mean?
When one exception wraps another, the JVM prints only the frames that differ and says how many it shares with the enclosing trace. Logback prints it as "common frames omitted"; plain Java prints "... 62 more".
Which exception should I read first?
The last "Caused by" is the root cause, the original failure. Wrapper exceptions above it are usually generic. The tool puts the root cause and the first frame of your own code at the top.