Skip to content

Reference

Comparison

Plain onErrorCaptured<NuxtErrorBoundary>vue-error-boundary-kit
Fallback UIyou build it every time#error slotfallback scoped slot: error, reset, retry, retryCount, canRetry
Retry / resetmanualmanualresetKeys, resetOnPropsChange, maxRetries built in; retry-backoff's createBackoffRetry() for increasing delay between attempts
Reportingmanualmanualadapter pattern (console/http/sentry/bugsnag/logrocket/otel), tree-shaken per adapter, exactly-once across nested boundaries
Mass-failure protectionadapters/rate-limit — dedup + rate-limit wrapper for any reporter
Breadcrumbsadapters/breadcrumbs — rolling event trail, opt-in, attached to reports via withBreadcrumbs()
TanStack Query retrymanual resetQueries() wiringmanual resetQueries() wiringtanstack-query's useQueryErrorReset() — one call, wired into beforeReset
Debug history/devtoolscreateErrorHistory() + <ErrorHistoryPanel>
Programmatic useuseErrorBoundary()
Beyond errorCaptureduseGlobalErrorCapture() (opt-in, separate entry point)
Nuxt moduleis onevue-error-boundary-kit/nuxt — auto-registers <ErrorBoundary> + auto-imports; useNuxtErrorBoundary() also catches what escapes every boundary via Nuxt's own vue:error/app:error hooks
vue-router errorsnot seen by onErrorCaptured at allnot seen by onErrorCaptured at allrouter's useRouterErrorBoundary() — catches navigation-guard and async-route-component errors via router.onError()
Testing helpersyou build them every timeyou build them every timevue-error-boundary-kit/testing — throw-on-demand components, a CapturedError fixture builder, a framework-agnostic recording reporter
Suspense + error boundary combinedyou nest <Suspense> and your own boundary by handyou nest <Suspense> and <NuxtErrorBoundary> by handasync-boundary's <AsyncBoundary> — one component, default/loading/fallback slots
SSRworks, no fallback swapworks, no fallback swapworks, no fallback swap (see SSR notes — this is a Vue architecture limit, not specific to any of these)
Bundle cost0part of Nuxt~2.1 kB gzip core; adapters/devtools are separate entry points
Vapor-mode readinessN/Adepends on Nuxtonly uses official onErrorCaptured/h() — no internal VDOM renderer APIs

Not in v1: a full Vue Devtools browser-extension custom inspector (the in-app <ErrorHistoryPanel> above covers the same need without adding @vue/devtools-api as a dependency).

License

MIT