Skip to content

Log full Throwable on Q2 start failure#743

Merged
ar merged 1 commit into
mainfrom
q2-start-error-stacktrace
Jul 20, 2026
Merged

Log full Throwable on Q2 start failure#743
ar merged 1 commit into
mainfrom
q2-start-error-stacktrace

Conversation

@ar

@ar ar commented Jul 20, 2026

Copy link
Copy Markdown
Member

Q2's main loop caught Throwable and logged only t.getMessage(), which turns diagnosable failures into one-line riddles.

Real case that prompted this: a user running with BouncyCastle missing from the runtime classpath got only

<log realm="q2/lifecycle" at="...">
  <error>
    start
    org/bouncycastle/bcpg/ArmoredInputStream
  </error>
</log>

No stack trace, no indication that the failure was logVersion()PGPHelper.getLicense() failing to link, and no way to tell a missing jar from an API break. Every other catch block in Q2 logs the Throwable itself; this one now does too.

🤖 Generated with Claude Code

Q2's main loop caught Throwable and logged only t.getMessage(), which
turns diagnosable failures into one-line riddles. A missing BouncyCastle
jar on the runtime classpath, for instance, showed up as just
'org/bouncycastle/bcpg/ArmoredInputStream' with no stack trace and no
hint that PGPHelper linking was the site of the failure.

Every other catch block in Q2 logs the Throwable itself; do the same
here.
@ar
ar merged commit 4441583 into main Jul 20, 2026
1 check passed
@jpos jpos deleted a comment from ar-agt Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant