Files
hackerspace.sh/instrumentation.ts

28 lines
1.1 KiB
TypeScript

// Next.js instrumentation. `onRequestError` is the framework-wide hook that
// fires for any error thrown out of a route handler, server component, or
// server action -- so it is the broad net that gives every server action
// error capture without per-action wiring. Swallowed best-effort failures
// (notification fan-outs, cron soft-fails, the Stripe handler that returns 500
// instead of throwing) do NOT reach this hook, so those are captured manually
// at their sites. Inert until SENTRY_DSN is set (the seam no-ops).
import { captureException } from '@/lib/observability/capture'
export async function register(): Promise<void> {
// No global init: the capture seam is a stateless fetch transport.
}
export async function onRequestError(
err: unknown,
request: { path?: string; method?: string },
context: { routerKind?: string; routePath?: string; routeType?: string },
): Promise<void> {
captureException(err, {
surface: 'request',
tags: {
route: context?.routePath,
routeType: context?.routeType,
method: request?.method,
},
})
}