Render errors + bug reports
Quay wraps every major panel (schema browser, editor, results grid, backup dialog, every Settings tab, every per-engine surface) in an error boundary. When the panel inside the boundary throws an unhandled exception, the user sees:
- A short back-link (”← Back to schema browser”) so navigation isn’t trapped
- The error message + a “details” disclosure with the stack
- A Send report button that bundles the error + recent context
and POSTs it to
feedback.uncle-z.com
No more “the whole app exploded into a blank screen”. You always have a way out.
The send-report flow
Section titled “The send-report flow”Click Send report → the dialog shows what’s about to be sent:
| Field | Contents |
|---|---|
| Error message | The thrown exception’s .message |
| Error stack | The full stack trace |
| Recent panel state | Which panel + which database + which engine (no row data) |
| Last 5 actions | Panel-level events (e.g. “opened table”, “ran query”) |
| Quay version | 0.3.x |
| OS + arch | darwin-arm64, windows-x86_64, etc. |
| Optional note | Free-form “what were you doing?” field |
Things deliberately not sent:
- Connection credentials
- Query bodies (SQL might contain identifiers + literals you don’t want shared)
- Row data
- File paths from your home directory (replaced with
~)
Confirm → POST → success toast. The report lands in
feedback.uncle-z.com’s queue and shows up in my morning triage.
What the report enables on my end
Section titled “What the report enables on my end”Each report becomes a row I can search by:
- Quay version (so I know which release the bug shipped in)
- Engine (a Mongo-only error vs a SQL-only error)
- Stack signature (group identical errors across users)
- Frequency over time
Most reports get a same-week fix; the occasional gnarly one (a specific MariaDB version with a specific charset on a specific OS) takes longer. Either way, the reporter gets a “fixed in 0.3.x” note in the next release email.
When the report-send itself fails
Section titled “When the report-send itself fails”If feedback.uncle-z.com is unreachable (your network is out, or
the service is down), the dialog falls back to Copy report to
clipboard. Paste it into an email to zaid.ug@gmail.com.
Reporting things that aren’t crashes
Section titled “Reporting things that aren’t crashes”- Unexpected behaviour (“DELETE returned the wrong row count”) — Help → Send feedback → free-form report. Same backend.
- Feature requests — same channel.
- Wishlist for a new engine driver — same.
Quay doesn’t have a public issue tracker (the repo is private). The in-app feedback channel is the canonical way to reach me.
Privacy posture
Section titled “Privacy posture”The error reporter posts directly from your machine to
feedback.uncle-z.com. There’s no analytics middleman, no Sentry,
no third-party telemetry SaaS. The endpoint is run on the same
infrastructure as the licence server.
Reports are kept indefinitely; they’re attached to bug fixes in git history. No PII gets stored deliberately, but if you accidentally included something sensitive in the optional note, email me to redact.
Disabling reporting entirely
Section titled “Disabling reporting entirely”Settings → Privacy → “Disable error reports” turns the Send report button off across the app. The error boundary still works (panel still recovers); just no upload.
There’s no silent / automatic / background reporting. Every report is an explicit user keystroke. We never send anything without you clicking the button.