- Add global-error.tsx at app root (inline styles, wraps html/body) - Add group-level error.tsx for (public) — catches all unguarded public routes - Add per-route error.tsx for high-traffic public segments: listings, listings/[id], du-an, du-an/[slug], khu-cong-nghiep, khu-cong-nghiep/[slug], agents, agents/[id], payment - Add auth/callback/error.tsx for OAuth callback failures - Commit coverage table to apps/web/docs/error-boundary-coverage.md Pre-existing API test failures unrelated to this change (broker-cert, update-listing-status, mcp.module) were already failing on master. Closes GOO-115 Co-Authored-By: Paperclip <noreply@paperclip.ing>
4.9 KiB
4.9 KiB
Error Boundary Coverage
Audited: 2026-04-24 | Issue: GOO-115
Summary
| Route group | Segment | error.tsx |
Notes |
|---|---|---|---|
| root | app/ |
✅ | app/error.tsx |
| root global | app/ |
✅ | app/global-error.tsx — added GOO-115 |
| locale root | app/[locale]/ |
✅ | app/[locale]/error.tsx |
| (admin) group | (admin)/ |
✅ | covers all admin sub-routes |
| (auth) group | (auth)/ |
✅ | covers login / register |
| auth callback | [locale]/auth/callback/ |
✅ | added GOO-115 |
| (dashboard) group | (dashboard)/ |
✅ | covers all dashboard sub-routes |
| (public) group | (public)/ |
✅ | added GOO-115 — fallback for uncovered public routes |
| public — search | (public)/search/ |
✅ | existed pre-audit |
| public — listings | (public)/listings/ |
✅ | added GOO-115 |
| public — listings detail | (public)/listings/[id]/ |
✅ | added GOO-115 |
| public — du-an | (public)/du-an/ |
✅ | added GOO-115 |
| public — du-an detail | (public)/du-an/[slug]/ |
✅ | added GOO-115 |
| public — khu-cong-nghiep | (public)/khu-cong-nghiep/ |
✅ | added GOO-115 |
| public — khu-cong-nghiep detail | (public)/khu-cong-nghiep/[slug]/ |
✅ | added GOO-115 |
| public — agents | (public)/agents/ |
✅ | added GOO-115 |
| public — agent profile | (public)/agents/[id]/ |
✅ | added GOO-115 |
| public — payment | (public)/payment/ |
✅ | added GOO-115 |
Routes covered by group boundary (no per-route file needed)
These routes fall under a group-level error.tsx that handles them:
| Route | Covered by |
|---|---|
(public)/bao-cao/ |
(public)/error.tsx |
(public)/bao-cao/[id]/ |
(public)/error.tsx |
(public)/bao-cao/tao-moi/ |
(public)/error.tsx |
(public)/chuyen-nhuong/ |
(public)/error.tsx |
(public)/chuyen-nhuong/[id]/ |
(public)/error.tsx |
(public)/chuyen-nhuong/dang-tin/ |
(public)/error.tsx |
(public)/compare/ |
(public)/error.tsx |
(public)/design-system/ |
(public)/error.tsx |
(public)/khu-cong-nghiep/cho-thue/ |
(public)/khu-cong-nghiep/error.tsx |
(public)/khu-cong-nghiep/so-sanh/ |
(public)/khu-cong-nghiep/error.tsx |
(public)/payment/return/ |
(public)/payment/error.tsx |
(public)/pricing/ |
(public)/error.tsx |
(admin)/admin/accounts/developers/ |
(admin)/error.tsx |
(admin)/admin/accounts/park-operators/ |
(admin)/error.tsx |
(admin)/admin/audit-log/ |
(admin)/error.tsx |
(admin)/admin/kyc/ |
(admin)/error.tsx |
(admin)/admin/moderation/ |
(admin)/error.tsx |
(admin)/admin/settings/ai/ |
(admin)/error.tsx |
(admin)/admin/users/ |
(admin)/error.tsx |
(auth)/login/ |
(auth)/error.tsx |
(auth)/register/ |
(auth)/error.tsx |
(dashboard)/dashboard/kyc/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/payments/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/profile/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/reports/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/reports/[id]/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/reports/new/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/saved-searches/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/subscription/ |
(dashboard)/error.tsx |
(dashboard)/dashboard/valuation/ |
(dashboard)/error.tsx |
(dashboard)/dev/tokens/ |
(dashboard)/error.tsx |
(dashboard)/industrial-parks/ |
(dashboard)/error.tsx |
(dashboard)/industrial-parks/[id]/edit/ |
(dashboard)/error.tsx |
(dashboard)/industrial-parks/new/ |
(dashboard)/error.tsx |
(dashboard)/inquiries/ |
(dashboard)/error.tsx |
(dashboard)/leads/ |
(dashboard)/error.tsx |
(dashboard)/my-listings/ |
(dashboard)/error.tsx |
(dashboard)/my-listings/[id]/edit/ |
(dashboard)/error.tsx |
(dashboard)/my-listings/new/ |
(dashboard)/error.tsx |
(dashboard)/projects/ |
(dashboard)/error.tsx |
(dashboard)/projects/[id]/edit/ |
(dashboard)/error.tsx |
(dashboard)/projects/new/ |
(dashboard)/error.tsx |
(dashboard)/analytics/ |
(dashboard)/error.tsx |
[locale]/auth/callback/google/ |
auth/callback/error.tsx |
[locale]/auth/callback/zalo/ |
auth/callback/error.tsx |
Files added in GOO-115
apps/web/app/global-error.tsxapps/web/app/[locale]/(public)/error.tsxapps/web/app/[locale]/(public)/listings/error.tsxapps/web/app/[locale]/(public)/listings/[id]/error.tsxapps/web/app/[locale]/(public)/du-an/error.tsxapps/web/app/[locale]/(public)/du-an/[slug]/error.tsxapps/web/app/[locale]/(public)/khu-cong-nghiep/error.tsxapps/web/app/[locale]/(public)/khu-cong-nghiep/[slug]/error.tsxapps/web/app/[locale]/(public)/agents/error.tsxapps/web/app/[locale]/(public)/agents/[id]/error.tsxapps/web/app/[locale]/(public)/payment/error.tsxapps/web/app/[locale]/auth/callback/error.tsx