React Native: v0.86.0-rc.0 Release

Release date:
May 6, 2026
Previous version:
v0.85.3 (released May 5, 2026)
Magnitude:
11,707 Diff Delta
Contributors:
59 total committers
Data confidence:
Commits:

349 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored April 21, 2026
Authored March 3, 2026
Authored May 6, 2026

Top Contributors in v0.86.0-rc.0

rubennorte
cipolleschi
christophpurrer
andrewdacenko
javache
huntie
zoontek
fabriziocucci
zeyap
react-native-bot

Directory Browser for v0.86.0-rc.0

All files are compared to previous version, v0.85.3. Click here to browse diffs between other versions.

Loading File Browser...

Release Notes Published

[!WARNING] This is a release candidate. It is not intended for production use.

v0.86.0-rc.0

Breaking changes

✨ None ✨

Added

  • Accessibility: AccessibilityInfo: added missing tests for Promise based methods, align null checks and error message code style (8fc503d780 by @chicio)
  • Animated: Suspense tests for the Animation Backend (8101fc776d by Bartlomiej Bloniarz)
  • Animated: Use weak_ptr when calling pullAnimationMutations in a callback scheduled with the Animation Backend (42d98b5830 by Bartlomiej Bloniarz)
  • Dev Server: Call methods on global.__BUNDLE_LOADER_REPORTER__, if given, during dev-mode bundler loads from Metro (1e0c1f886b by @robhogan)
  • React Native DevTools: Add new custom track for React Native Renderer operations in React Native DevTools performance traces (0b1def9ce5, 29bc8f1acb, 9130df6773, c26a4875ea by @rubennorte)
  • React Native DevTools: Add support for light/dark mode emulation via Emulation.setEmulatedMedia (11a5432cb2 by @huntie)
  • Runtime: Add unstable_getViewTransitionInstance to UIManagerBinding (d8820a403b by @zeyap)
  • Runtime: Add UIManagerViewTransitionDelegate interface and View Transition APIs (cdad57d8f1 by @zeyap)
  • Runtime: Add viewport size to LayoutContext (d38c756529 by @paradowstack)
  • Runtime: ViewTransitionModule for React Native View Transitions (f81f73e5a0 by @zeyap)
  • Text: Add E2E tests for Text boxShadow and textWithLinkRole (b172f46f0d by @NickGerleman)
  • View: Add E2E tests for Filter blur-with-overflow, drop-shadow, and animated-blur (66975aa3d5 by @NickGerleman)
  • View: Add mixBlendMode plus-lighter (aaa0684045 by @bigcupcoffee)

Android specific

  • Events: Channel play/pause hardware events. (5087aa0dba by Nishil Shah)
  • Events: Pass event object to BackHandler hardwareBackPress events to access timeStamp from native event. (bf277cb6d4 by @rubennorte)
  • LogBox: Allow LogBox notification toasts and inspector overlay to be dismissed via Android back button (6530092162 by @Abbondanzo)
  • Runtime: Add ExtraWindowEventListener interface to allow native modules to react to window creation / destruction (e.g. Modal dialogs) (58fec1fa8d by @zoontek)
  • Runtime: Add test for synchronous mount props override behavior (a25e0fdddf by @zeyap)
  • Text: Add E2E tests for Text visual examples (batch 1) (b53b228673 by @NickGerleman)
  • Text: Add E2E tests for Text visual examples (batch 2) (d5a271dd05 by @NickGerleman)
  • TextInput: Add extended Android TextInput autoComplete autofill hint support and bump androidx.autofill to 1.3.0. (ac598aff2b by @radko93)
  • View: Add E2E tests for Filter static visual examples (d18d9a4046 by @NickGerleman)

iOS specific

  • Build: Add privacy manifest to declare the use of mach_absolute_time() API in the React-timing module (2ae6c8940d by @rubennorte)
  • Dev Server: Introduce isPackagerRunningAsync that does not block the UI thread waiting on the request to DevServer ("Packager") validating that it is running (dd056d9b4c by @vzaidman)
  • Image: Add E2E tests for Image visual examples (48b6f2dcc9 by @NickGerleman)
  • Networking: Add RCTSetCustomMultipartDataTaskRequestInterceptor API to allow custom modification of multipart data task requests before they are sent (59b8886bb8 by @cipolleschi)

Changed

  • Build: Update Metro to ^0.84.2 (57d4b6b350 by @robhogan)
  • Dev Server: LoadBundleFromServer test: remove legacy Jest timers, increased coverage and improved assertions (a19d98e542 by @chicio)
  • Hermes: Bump hermes-compiler dependency (031168013e by @robhogan)
  • Hermes: Bump hermes version (89a2a20739 by @robhogan)
  • LogBox: Migrated LogBoxData tests to Jest modern timers (dea2136a49 by @chicio)
  • React: Make React Native consume 250829098.0.11 (26953d8343 by @alanleedev)
  • React Native DevTools: Derive WebSocket scheme and port from dev server URL for React DevTools connections, supporting HTTPS dev servers (ca4173701d by @cipolleschi)
  • Runtime: Measure node instance during applyViewTransitionName (d17ecca3c9 by @zeyap)
  • Runtime: Move ViewTransition APIs not for react reconciler to its own TurboModule (0e65df9152 by @zeyap)
  • Runtime: Setting reportErrorsAsExceptions to anything other than false no longer does anything. (Previously, setting it to a falsey value would be similar to setting it to false.) (f0748a6387 by @yungsters)
  • Runtime: Use getNullableViewState in SurfaceMountingManager::updateProps and log a soft exception instead (bbf7004935 by Bartlomiej Bloniarz)
  • TurboModules: Move DefaultTurboModules::get to end of TurboModuleManager (6b32971f46 by @zeyap)

Android specific

  • Animated: AnimationBackendChoreographer doesn't guard the ReactChoreographer post/remove with synchronized(paused) (22d327595d by Bartlomiej Bloniarz)
  • Build: Changed foojay-resolver-convention version to 1.0.0 (664acaf441 by @TheNerdGuyLulu)
  • StatusBar: Respect theme enforceNavigationBarContrast attribute (dfddcc9796 by @zoontek)

iOS specific

  • Networking: Add RCTHTTPRequestInterceptor for selective HTTP request modification (0c7d780aa0 by @cipolleschi)
  • Networking: Add SRWebSocketProvider for selective WebSocket header injection (f3aa8c21d1 by @cipolleschi)
  • React Native DevTools: Derive inspector and debugger URL scheme from bundle URL to support HTTPS dev servers (36dfcef023 by @cipolleschi)

Deprecated

  • JavaScript API: Deprecated second argument for hook function passed to AppRegistry.setComponentProviderInstrumentationHook as it's not usable by apps. Passed stub that warns when used. (64116117c0 by @rubennorte)

Fixed

  • Accessibility: Fix AccessibilityInfo.isDarkerSystemColorsEnabled unresolved (never ending) promise (8fbf2fab47 by @chicio)
  • Accessibility: Fix AccessibilityInfo.isHighTextContrastEnabled unresolved (never ending) promise (5c9a5717c1 by @chicio)
  • Accessibility: Fix AccessibilityInfo.prefersCrossFadeTransitions unresolved (never ending) promise (57c073f0d7 by @chicio)
  • Animated: Fix 1-frame latency in C++ NativeAnimatedNodesManager for event-driven animations by processing the animation graph synchronously on every scroll event, matching the Java implementation behavior (0517fb552d by Mark Verlingieri)
  • Animated: Fix typo "interpolation" to "interpolate" and add missing space in AnimatedInterpolation error messages (a8b39a237c by @Nedunchezhiyan-M)
  • Babel: Prevent errors by handling contexts where the Babel API object is not provided (63796a9160 by On Saint Tiong)
  • Build: Fix incorrect package name and output filename in scripts/js-api/README.md (d823f5b1cc by @Nedunchezhiyan-M)
  • Codegen: Respect enum values for TurboModule c++ codegen (56129fedcb by @akawrykow)
  • Documentation: Correct the v0.85.0 changelog entry for the removal of StyleSheet.absoluteFillObject. (fdbe0d0b63 by @jingjing2222)
  • Modal: Forward style prop to Modal's inner container View with correct precedence so consumer styles are applied without overriding transparent or backdropColor (f8fa76f94c by @AnuMessi10)
  • React Native DevTools: Add exponential backoff and exception handling to InspectorPackagerConnection reconnect loop to prevent heap fragmentation crashes (32d3eafdc4 by @shubhamksavita)
  • Runtime: Add missing VIEW_EVENT_CASE entries in BaseViewProps::setProp for Click, PointerDown, PointerUp, GotPointerCapture, LostPointerCapture and their Capture variants (offsets 30-37) (8d5482dd94 by Harini Malothu)
  • Runtime: Fix crash in Performance API when sorting entries (81c99682a4 by @Abbondanzo)
  • Runtime: Fix event timestamp injection overriding native timestamps with lowercase property name (68debb27ff by @fkgozali)
  • Runtime: Fix event timestamp propagation from host platforms to JS (aa51746b87 by @rubennorte)
  • Runtime: Link VirtualView component (de78906391 by @j-piasecki)
  • Runtime: PerformanceObserver: observe({type: 'event'}) now correctly defaults durationThreshold to 104ms per the W3C Event Timing spec instead of reporting all events. (65c561e195 by @rubennorte)
  • Runtime: Prevent Scheduler use-after-free crash when surfaces tear down with pending rendering updates (aadbe96579 by @fkgozali)
  • Runtime: Prevent updates to mounted flag on the React revision (7ee893d3be by @j-piasecki)
  • Runtime: Support multiple old pseudo elements for same name but different source node (370606dc5b by @zeyap)
  • Runtime: Use relevant revision as base for mounted flag updates (4b954e14c8 by @j-piasecki)
  • Runtime: Views with a non-invertible transform (e.g. scaleX: 0 or scaleY: 0) no longer receive touches on Android or iOS. (1e8e182410 by @qflen)
  • TurboModules: Bring back C++ Turbo Module example in RN Tester (1c2cddad1a by @christophpurrer)
  • VirtualizedList: Improve render area change with initialScrollIndex non zero test in VirtualizedList to avoid magic numbers timers (9b966d1d8f by @chicio)
  • Yoga: Fixed Yoga node ownership when display: contents is used in absolutely positioned subtrees (f2f92098dd by @j-piasecki)

Android specific

  • Accessibility: Guard ReactViewGroup.addChildrenForAccessibility against transient non-descendant accessibility traversal crashes. (e681736e18 by @erickreutz)
  • Build: Fix build regression by using rootProject.file (8a8f1b801c by @etodanik)
  • Hermes: Fix HermesSamplingProfiler.disable() JNI registration calling enable() instead of disable() (7f2a58e46c by @elirangoshen)
  • Hermes: Use Hermes V1 stable release instead of legacy nightly to fix startup crash caused by JSI ABI mismatch (45ceacc08f by @cipolleschi)
  • Image: Fix image content disappearing on API 24 (Nougat) when antialiased border radius clipping is applied (fdd6ca5bb1 by @Abbondanzo)
  • Image: Make sure view width and height are non 0 before calling createBitmap() (c20a58ab6b by @zeyap)
  • Legacy Architecture: Fix onHostPause crash in ReactInstanceManager without feature flag (3aa8a043de by @shubhamksavita)
  • LogBox: Fixed activity context memory leak in LogBoxDialogSurfaceDelegate when using bridgeless mode (f10cded1f8 by Ilya Kovalyov)
  • Networking: Blob content provider did not work in new arch (05ea94c441 by @javache)
  • Networking: Catch OutOfMemoryError in NetworkingModule response processing to prevent app crashes (0c153e2971 by @shubhamksavita)
  • Networking: WebSocketModule no longer strips a Cookie header passed via the WebSocket constructor's headers option (24b51db75b by @psjostrom)
  • Runtime: Fix Dimensions window values on Android < 15 when edge-to-edge is enabled (44a4b1ba5d by @zoontek)
  • Runtime: Fix KeyboardAvoidingView on Android 15+ / with edgeToEdgeEnabled (4a6c933cce by @zoontek)
  • Runtime: Fix measureInWindow returning incorrect coordinates when edge-to-edge is enabled (9d183675e9 by @zoontek)
  • Runtime: Fix crash from stale preallocated view registry after concurrent render cancellation (97cf2202ee by @javache)
  • Runtime: Gate diagnostic printMountItem calls in MountItemDispatcher error handlers behind enableFabricLogs() to prevent OOM crash (7a546f98a7 by @JakobFelixJulius)
  • Runtime: Handle edge-to-edge when it's not enabled by the edgeToEdgeEnabled gradle property but enforced by the OS (Android 15+) (c2280e3201 by @zoontek)
  • Runtime: Register HeadlessJsTaskSupportModule in CoreReactPackage (2d78a39b3e by θ΄Ύε€ͺ滨)
  • Runtime: Schedule React revision merge to happen on DISPATCH_UI choreographer queue, before dispatching events (b63efbfc6b by @j-piasecki)
  • ScrollView: Dispatch FPS performance events for mouse wheel and trackpad scroll interactions in ScrollView (e0a453c603 by @Abbondanzo)
  • ScrollView: Fix FPS performance listener being cleared on ScrollView recycle (59ac1db76e by @Abbondanzo)
  • StatusBar: StatusBar configuration now applies to Modal windows, fixing visual inconsistencies (6614fe7f2b by @zoontek)
  • Text: Fix 1px text wrapping in absolutely positioned elements caused by fractional Yoga widths (90c2c595da by @clocksarestupid)
  • Text: Fix BoringLayout crash when isBoring() returns negative width (d527f2d663 by @NickGerleman)
  • Text: Fix crash when measuring text in a stopped surface (f71ec1a24e by @NickGerleman)
  • TextInput: Fix setAutoCapitalize stripping numeric TextInput flags (TYPE_NUMBER_FLAG_SIGNED/DECIMAL), affecting minus sign input on Samsung keyboards (863f76bd49 by @lukeharvey)
  • TextInput: KeyboardAvoidingView and TextInput auto-scroll not responding to IME height changes (e.g., when toggling emoji panel or predictive bar) (ee1d067692 by @alanleedev)
  • View: Fixed a crash when clearing zIndex with props 2.0 enabled (93b37350af by @hannojg)
  • View: Fixed crash when enabling props 2.0 and setting borderStyle to undefined (9e058db4c8 by @hannojg)
  • View: Unsupported background size value leading to crash (fe046dc782 by @intergalacticspacehighway)

iOS specific

  • Build: Addressed -Wunreachable-code-return violations (9172bfe647 by @ingridwang)
  • Build: Addressing -Wunreachable-code-return issues. (722623aaeb by @ingridwang)
  • Build: Fixing unreachable-code-break (795d902270 by @ingridwang)
  • Build: Made ReactInternal compatible with Swift (fc5cc2821f by @rmaz)
  • Build: Removing unused ivars (3d2d14df16 by @ingridwang)
  • CocoaPods: Fix REACT_NATIVE_PATH resolution when Pods/ is a symlink (ea383822b7 by @huntie)
  • CocoaPods: Fix React-CoreModules failing to compile with use_frameworks! due to missing React-featureflags header path (fb0d28c6fd by @radko93)
  • CocoaPods: Preserve Expo-generated React-use-frameworks.modulemap across replace-rncore-version.js runs (ada39220a0 by @Insik-Han)
  • Dev Server: Fix iOS dev-support IPv6 handling for packager and inspector connections. (4a59f90c22 by @hannojg)
  • Hermes: Fix compilation error in createJSRuntimeFactory and skip Hermes pods when USE_THIRD_PARTY_JSC is enabled (2d8143794d by @tux2nicolae)
  • Networking: Fix crash in RCTWebSocketModule when delegate callbacks fire after module invalidation (587ef059a2 by @lukeharvey)
  • React Native DevTools: Fix inspector server host resolution for HTTPS bundle URLs by omitting default port (3582a8b2b5 by @cipolleschi)
  • TextInput: Fix NSRangeException crash in RCTBackedTextInputDelegateAdapter when text range is out of bounds (19350b1c8c by @lukeharvey)
  • View: Fixes crash when changing the value of removeClippedSubviews (91e3f773b7 by @javache)

Security


Hermes dSYMS: - Debug - Release

Hermes V1 dSYMS: - Debug - Release

ReactNativeDependencies dSYMs: - Debug - Release

ReactNative Core dSYMs: - Debug - Release


You can file issues or pick requests against this release here.


To help you upgrade to this version, you can use the Upgrade Helper βš›οΈ.


View the whole changelog in the CHANGELOG.md file.