500 Incident Report
A server error page framed like an incident report: a small eyebrow and status code sit over a hairline rule, above a bold accent headline, a bordered table of incident details (reference, timestamp, service), and a retry button beside a status-page link.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/500-incident-report.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/error/error15.tsx instead.
Usage
The file also exports error15Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Error15, error15Demo } from "@/components/blocks/error/error15"; export default function Page() { return <Error15 {...error15Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | "Error" | Small label at the left of the hairline rule. |
| statusCode | string | "500" | Status code shown at the right of the hairline rule. |
| heading | ReactNode | Something broke on <span className="text-primary">our</span> end. | Bold headline. Accepts JSX so one word can be wrapped for the accent-color highlight. |
| description | string | "Our team has been notified and is already looking into it. Try again in a moment." | Short supporting copy under the heading. |
| rows | IncidentRow[] | none | Labeled rows in the bordered incident table. |
| retryLabel | string | "Try again" | Label for the retry button. |
| retryHref | string | "#" | Link target for the retry button. |
| statusLabel | string | "Status page" | Label for the status-page link. |
| statusHref | string | "#" | Link target for the status-page link. |
| className | string | none | Extra classes for the outer section element. |
Types
interface IncidentRow { label: string; value: string; }
Behavior notes
- The retry button and status-page link render as real Next.js Link components, but both default to "#" until you supply your own hrefs, no retry request is actually sent.
- The incident table's reference/timestamp/service values are static demo data, not a live report from a real monitoring system.
More Error Blocks
View all →centered-404-message
Centered 404 Message
Minimal centered 404 with two CTAs and a divided row of popular page links.
404-with-site-search
404 With Site Search
404 screen with a working search box and a bordered list of suggested pages.
split-404-with-image
Split 404 With Image
Two-column 404 with the message on one side and a full-bleed photo that scales on hover on the other.
404-with-destination-cards
404 With Destination Cards
404 screen with a grid of icon destination cards plus fallback CTA buttons.
404-support-panel
404 Support Panel
Card-style 404 echoing the requested URL, with a real back button and a support/status link row.
inline-404-line
Inline 404 Line
The smallest possible 404: code and message on one divided line with one button underneath.