What problem does it solve? Handling unmatched URLs, missing resources, and loader failures in TanStack Router apps requires knowing which APIs to use and which deprecated patterns to avoid, and mistakes like using NotFoundRoute or reading loader data in a notFoundComponent silently break error handling. ## Core Features & Use Cases - Not-Found Handling: Configure global 404s with notFoundComponent on the root route, router-wide defaults, and per-route missing-resource pages by throwing notFound() from loaders. - Error Boundaries: Attach errorComponent per route or router-wide, with retry via router.invalidate() to re-run loaders and reset the boundary. - Route Masking: Display a different browser URL than the rendered route using the mask option on Link, useNavigate, or declarative createRouteMask with unmaskOnReload control. - Use Case: When building a photo gallery modal, mask /photos/$photoId/modal as /photos/$photoId so the URL looks clean, while a thrown notFound() shows a friendly per-route 404 when the photo does not exist. ## Quick Start Show me how to add a global 404 page and a per-route error boundary with retry to my TanStack Router app.