# 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`
