# Diagnose: Next.js client events arrive, server events do not (or reverse)

## The model

Next.js runs three SDK instances with three configs. They fail independently. Client events arriving tells you nothing about the server config.

## Client yes, server no

1. `sentry.server.config.ts` missing or throwing on import. A syntax error here kills server-side init silently; client init is a different file and keeps working.
2. `instrumentation.ts` not registering: check the `register()` function imports the server config when `NEXT_RUNTIME === "nodejs"` and exports `onRequestError = Sentry.captureRequestError`.
3. Server code catching everything: if your API routes swallow exceptions and return 500s without rethrowing or capturing, there is nothing for the SDK to see. The SDK captures unhandled errors; handled-and-swallowed ones need an explicit `captureException`.

## Server yes, client no

1. `instrumentation-client.ts` missing or the DSN wrong there (it is a separate init call with its own DSN).
2. Adblocker blocking the ingest host: server traffic is unaffected, browser traffic dies. Add `tunnelRoute`.
3. React rendering errors without `app/global-error.tsx`: App Router needs that file to surface render crashes.

## Confirmation

Trigger one error in each runtime deliberately (a button click, an API route throw, a middleware throw) and see which produce issues. The pattern of which runtimes report maps directly to which config file is broken.

## Verify

All three test errors appear as issues. Keep the three test endpoints (or document them) so the next gap gets diagnosed in minutes, not days.