Skip to content

Capture errors at the boundaries #911

Description

@PaulHax

useGlobalErrorHook only listens for window.error. Async failures — most of what
VolView does — reach nothing: no toast, no bug report, no console entry. Vue render
errors are uncaught too, since Sentry.init({ app }) was the only thing installing
app.config.errorHandler, and Sentry is not configured in deployments.

Scope

  • Handle unhandledrejection, routed through the same path as window.error
  • Dedupe repeated errors — a broken render fires on every re-render and would flood the message list
  • Extend the benign-filter list (precedent: the existing ResizeObserver loop filter) as noise surfaces
  • Follow-up: install app.config.errorHandler

Note

The code is small; the blast radius isn't. These failures are silent today, so
capturing them will surface a batch of benign rejections — aborted fetches, cancelled
loads, workers torn down mid-flight.

Open question: should newly-captured errors toast like window.error does, or land
quietly in console + bug report until the noise is known?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions