273
An app error page with a small 1-bit dithered ?! glyph, Try again that fails once with a shake and then recovers into a check, a copyable error details panel and a quiet Report this link.
akaerror·500·something went wrong
Run this in any project set up for the shadcn CLI. It copies the Something Went Wrong source into your components folder, so the code is yours to change.
npx shadcn@latest add https://devl.dev/r/something-went-wrong.jsonImport it and render it. Every prop has a typed default, so it works straight away, and you pass your own data when you’re ready.
import { SomethingWentWrong } from "@/components/something-went-wrong";
export default function Page() {
return <SomethingWentWrong />;
}A free React block in the Empty & Error collection, written in TypeScript with Tailwind CSS on coss ui. MIT licensed.
Read from the Something Went Wrong source. Everything is optional unless it says required.
| Prop | Type | Default |
|---|---|---|
| title | string | "Something went wrong" |
| description | string | "We couldn’t load this report. Your data is safe, and we’ve logged the error." |
| stillFailingDescription | string | "Still not loading. This usually clears up in a few minutes." |
| details | ErrorDetails | { id: "err_7Hq2kV9x", stack: [] } |
| recovered | RecoveredCopy | { title: "You’re back", description: "The report loaded. Nothing was lost.", actionLabel: "Continue" } |
| breadcrumb | string[] | ["Reports"] |
| product | string | "Ridgeline" |
| userInitials | string | "AL" |
| onRetry | () => Promise<void> | void | — |
| onGoToDashboard | () => void | — |
| onReport | (errorId: string) => void | — |
| onContinue | () => void | — |
| className | string | — |