Skip to content

Complete Remix 3 server error handling #24664

Description

@chargome

Cover the error paths the router middleware alone does not see, and stop reporting things that are not faults.

  • Patch createRequestListener in @remix-run/node-fetch-server and install an onError that chains to the app's own. This is the only thing covering an app whose fetch handler does not use fetch-router.
  • Skip aborted requests. raceRequestAbort rejects with the request's abort reason when a client disconnects, so without this every user navigating away mid request creates an issue.
  • Add a shouldHandleError option on the integration, following the @sentry/hono convention: skip 3xx and 4xx errors carrying a numeric status, capture the rest.

No de-duplication needed when a failure is seen by both the middleware and onError. captureException already marks the value __sentry_captured__ and drops the second report.

A handler returning a 500 response is not an error. Nothing is thrown, so no issue is created and the status lands on the span.

Done when e2e covers the abort case and the non-router handler case. The abort test must fail if the guard is removed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions