Will It Vibe logoWill It Vibe?
NEXT-017Low severity-4 points

App Router missing an error boundary

Part of Code Quality & Syntax, which counts for 20% of the overall score. When this check fires it deducts 4 points from that category, once per scan, no matter how many places it turns up.

What it detects

The app directory has route segments but no error.tsx or global-error.tsx. A thrown error in a Server or Client Component then surfaces as an unstyled default error screen with no recovery path. Heuristic: a boundary in a parent segment covers its children.

Why it matters

In the App Router an uncaught error in a Server or Client Component is caught by the nearest error.tsx boundary. With no error.tsx or global-error.tsx anywhere, a thrown error takes down the whole route into the default error screen with no styled fallback and no way for the user to retry. This is a heuristic: a boundary in a parent segment already protects its children.

How to fix it

Add an error.tsx (a Client Component that receives error and reset props) at the app root or the segments that do risky work, rendering a friendly message and a retry button that calls reset(). Add a global-error.tsx to catch failures in the root layout itself.

The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing

Does your repo trip this check?

Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.

Scan your repo

Related Code Quality & Syntax checks