Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Refresh haptics is broken after RefreshControl remount

Open
#57,843 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
react-native
Domain
mobile

Research direction

Run the mandatory reproducer on a physical iOS device and confirm that haptics stop after RefreshControl remount. Then inspect RCTPullToRefreshViewComponentView and its view recycling behavior in the Fabric implementation. Done means refresh haptics work both before and after the component is remounted.

Written by the indexing model from the issue text.

Description

Component: RefreshControl Needs: Triage :mag: Type: New Architecture
Description

Refresh haptics is broken after RefreshControl remount.
Disabling view recycling for RCTPullToRefreshViewComponentView fixes the issue.

Steps to reproduce
  1. Run the repro project on a physical device
  2. Refresh - haptics works
  3. Click remount
  4. Refresh again - haptics gone
React Native Version

0.86.2

Affected Platforms

Runtime - iOS

Areas

Fabric - The New Renderer

Output of npx @react-native-community/cli info
System:
  OS: macOS 26.5.2
  CPU: (11) arm64 Apple M3 Pro
  Memory: 140.80 MB / 18.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 24.18.0
    path: /Users/oleksiibulenok/.nvm/versions/node/v24.18.0/bin/node
  Yarn:
    version: 1.22.22
    path: /Users/oleksiibulenok/.nvm/versions/node/v24.18.0/bin/yarn
  npm:
    version: 11.16.0
    path: /Users/oleksiibulenok/.nvm/versions/node/v24.18.0/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.16.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 25.5
      - iOS 26.5
      - macOS 26.5
      - tvOS 26.5
      - visionOS 26.5
      - watchOS 26.5
  Android SDK:
    API Levels:
      - "34"
      - "35"
      - "36"
    Build Tools:
      - 34.0.0
      - 35.0.0
      - 36.0.0
    System Images:
      - android-35 | Google Play ARM 64 v8a
      - android-36 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2025.1 AI-251.26094.121.2512.13991807
  Xcode:
    version: 26.6/17F113
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.14
    path: /Users/oleksiibulenok/Library/Java/JavaVirtualMachines/jbr-17.0.14/Contents/Home/bin/javac
  Ruby:
    version: 2.7.6
    path: /Users/oleksiibulenok/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.1.0
    wanted: 20.1.0
  react:
    installed: 19.2.3
    wanted: 19.2.3
  react-native:
    installed: 0.86.2
    wanted: 0.86.2
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true
Stacktrace or Logs
N/A
MANDATORY Reproducer

https://github.com/abulenok/rn-refresh-control-haptic-remount-repro

Screenshots and Videos

No response

Dominant language
C++
Stars
127k
Forks
25.3k
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from react/react-native

All issues in react/react-native

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.