You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add global error handling so uncaught render errors and unknown routes degrade gracefully instead of crashing the app.
Priority: P0
Tasks
Add a GlobalErrorBoundary class component in src/app/ErrorBoundary.tsx that catches uncaught render errors, logs them to the console, and renders a user-facing fallback with a "Go home" action
Wrap the app root in GlobalErrorBoundary (outside QueryClientProvider so provider errors are also caught)
Add a NotFoundPage component for unmatched routes with a clear message and a link back to /members
Add a catch-all path="*" route in AppRouter.tsx that renders NotFoundPage
Add global error handling so uncaught render errors and unknown routes degrade gracefully instead of crashing the app.
Priority: P0
Tasks
GlobalErrorBoundaryclass component insrc/app/ErrorBoundary.tsxthat catches uncaught render errors, logs them to the console, and renders a user-facing fallback with a "Go home" actionGlobalErrorBoundary(outsideQueryClientProviderso provider errors are also caught)NotFoundPagecomponent for unmatched routes with a clear message and a link back to/memberspath="*"route inAppRouter.tsxthat rendersNotFoundPageQueryClientto not retry on 4xx errors (already noted in Feature: Client foundation — Zustand, daisyUI, and app shell #43 but must be verified here)Acceptance criteria
/members