SIGN IN SIGN UP
facebook / react UNCLAIMED

The library for web and native user interfaces.

0 0 111 JavaScript

Throw special error if rejected Promises are incorrectly instrumented (#36328)

When a rejected `Promise` is instrumented in userspace while setting the
rejection reason in the wrong field (e.g. `error` instead of `reason`),
React will throw undefined (because `usable.reason` doesn't exist). This
makes it incredibly hard to find the actual rejection reason.

React is now throwing a generic error if we couldn't find the rejection
reason. That will produce a callstack pointing into the problematic
Promise from where you can hopefully extract the real rejection reason
(alongside fixing the bad instrumentation).

We're doing this in prod since this is unlikely to surface in dev. We're
only doing runtime type-checking for the rejected case. That should be
hit rarely and therefore hopefully have negligible runtime impact.
S
Sebastian "Sebbie" Silbermann committed
c0cd4d5d30f3ad56380c14ac53c6f50d96e38814
Parent: cafd63b
Committed by GitHub <noreply@github.com> on 5/27/2026, 10:00:17 AM