# Error Boundary Coverage Audited: 2026-04-24 | Issue: [GOO-115](/GOO/issues/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.tsx` - `apps/web/app/[locale]/(public)/error.tsx` - `apps/web/app/[locale]/(public)/listings/error.tsx` - `apps/web/app/[locale]/(public)/listings/[id]/error.tsx` - `apps/web/app/[locale]/(public)/du-an/error.tsx` - `apps/web/app/[locale]/(public)/du-an/[slug]/error.tsx` - `apps/web/app/[locale]/(public)/khu-cong-nghiep/error.tsx` - `apps/web/app/[locale]/(public)/khu-cong-nghiep/[slug]/error.tsx` - `apps/web/app/[locale]/(public)/agents/error.tsx` - `apps/web/app/[locale]/(public)/agents/[id]/error.tsx` - `apps/web/app/[locale]/(public)/payment/error.tsx` - `apps/web/app/[locale]/auth/callback/error.tsx`