-
Notifications
You must be signed in to change notification settings - Fork 24.9k
Closed
Labels
Component: RefreshControlNeeds: Author FeedbackNeeds: ReproThis issue could be improved with a clear list of steps to reproduce the issue.This issue could be improved with a clear list of steps to reproduce the issue.Resolution: PR SubmittedA pull request with a fix has been provided.A pull request with a fix has been provided.
Description
Description
RefreshControl crashes on Android when size prop is passed as number instead of string. typescript hints incorrectly show size as number | undefined
, but rn docs indicate enum values ("default" or "large"). This causes a runtime crash with "TypeError: expected dynamic type 'string', but had type 'double'" during native compilation
Steps to reproduce
- Create a ScrollView with RefreshControl component
- Pass size prop as a number as specified by TS (ex: size={80})
- Build and run on Android device
- Pull down to trigger refresh
- App crashes or hangs
React Native Version
0.79.5
Affected Platforms
Runtime - Android, Build - Windows
Output of npx @react-native-community/cli info
System:
OS: Windows 11 10.0.26100
CPU: (12) x64 13th Gen Intel(R) Core(TM) i5-13420H
Memory: 16.78 GB / 31.71 GB
Binaries:
Node:
version: 22.14.0
path: C:\Program Files\nodejs\node.EXE
Yarn: Not Found
npm:
version: 11.5.2
path: C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK: Not Found
Windows SDK: Not Found
IDEs:
Android Studio: AI-251.26094.121.2512.13840223
Visual Studio: Not Found
Languages:
Java: 17.0.12
Ruby: Not Found
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 19.0.0
wanted: 19.0.0
react-native:
installed: 0.79.5
wanted: 0.79.5
react-native-windows: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: Not found
newArchEnabled: Not found
iOS:
hermesEnabled: Not found
newArchEnabled: Not found
Stacktrace or Logs
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: Caused by: com.facebook.react.common.JavascriptException: Error: Exception in HostFunction: TypeError: expected dynamic type 'string', but had type 'double'
09-22 15:40:43.897 29875 29933 E unknown:ReactHost:
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: This error is located at:
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at AndroidSwipeRefreshLayout (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RefreshControl (address at index.android.bundle:1:662069)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:493642)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTScrollView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ScrollView (address at index.android.bundle:1:667476)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Wrapper (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:493642)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:493642)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:493642)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Guidance (address at index.android.bundle:1:1636044)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspense (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Route (address at index.android.bundle:1:1369931)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at BaseRoute (address at index.android.bundle:1:1373686)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at StaticContainer (address at index.android.bundle:1:1260755)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at EnsureSingleNavigator (address at index.android.bundle:1:1200080)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SceneView (address at index.android.bundle:1:1258289)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:493642)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:589967)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Background (address at index.android.bundle:1:1301332)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Screen (address at index.android.bundle:1:1344462)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNSScreen (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:589967)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspender (address at index.android.bundle:1:1351495)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspense (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Freeze (address at index.android.bundle:1:1351555)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at DelayedFreeze (address at index.android.bundle:1:1350750)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at InnerScreen (address at index.android.bundle:1:1348362)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1350028)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at MaybeScreen (address at index.android.bundle:1:1393905)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNSScreenContainer (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ScreenContainer (address at index.android.bundle:1:1357804)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at MaybeScreenContainer (address at index.android.bundle:1:1394059)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at FrameSizeProvider (address at index.android.bundle:1:1330446)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaProviderCompat (address at index.android.bundle:1:1343541)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at BottomTabView (address at index.android.bundle:1:1379430)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at PreventRemoveProvider (address at index.android.bundle:1:1235738)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationStateListenerProvider (address at index.android.bundle:1:1267366)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationContent (address at index.android.bundle:1:1254656)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1254559)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at BottomTabNavigator (address at index.android.bundle:1:1378323)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1368857)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at TabLayout (address at index.android.bundle:1:1621668)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspense (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Route (address at index.android.bundle:1:1369931)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at BaseRoute (address at index.android.bundle:1:1373686)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at StaticContainer (address at index.android.bundle:1:1260755)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at EnsureSingleNavigator (address at index.android.bundle:1:1200080)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SceneView (address at index.android.bundle:1:1258289)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNSScreenContentWrapper (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ScreenContentWrapper (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at DebugContainer (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNSScreen (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:589967)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspender (address at index.android.bundle:1:1351495)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspense (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Freeze (address at index.android.bundle:1:1351555)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at DelayedFreeze (address at index.android.bundle:1:1350750)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at InnerScreen (address at index.android.bundle:1:1348362)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1350028)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ScreenStackItem (address at index.android.bundle:1:1360277)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SceneView (address at index.android.bundle:1:1295972)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNSScreenStack (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1359252)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ScreenStack (address at index.android.bundle:1:1358532)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at FrameSizeProviderInner (address at index.android.bundle:1:1330525)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at FrameSizeProvider (address at index.android.bundle:1:1330446)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaProviderCompat (address at index.android.bundle:1:1343541)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NativeStackView (address at index.android.bundle:1:1294553)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at PreventRemoveProvider (address at index.android.bundle:1:1235738)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationStateListenerProvider (address at index.android.bundle:1:1267366)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationContent (address at index.android.bundle:1:1254656)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1254559)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NativeStackNavigator (address at index.android.bundle:1:1293162)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1368857)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaEnv (address at index.android.bundle:1:1071193)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNCSafeAreaProvider (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaProvider (address at index.android.bundle:1:1073207)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaProviderShim (address at index.android.bundle:1:1071585)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ThemeProvider (address at index.android.bundle:1:1487672)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RootLayout (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Suspense (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Route (address at index.android.bundle:1:1369931)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at BaseRoute (address at index.android.bundle:1:1373686)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at StaticContainer (address at index.android.bundle:1:1260755)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at EnsureSingleNavigator (address at index.android.bundle:1:1200080)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SceneView (address at index.android.bundle:1:1258289)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at PreventRemoveProvider (address at index.android.bundle:1:1235738)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationStateListenerProvider (address at index.android.bundle:1:1267366)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationContent (address at index.android.bundle:1:1254656)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:1254559)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at Content (address at index.android.bundle:1:1475920)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaEnv (address at index.android.bundle:1:1071193)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RNCSafeAreaProvider (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaProvider (address at index.android.bundle:1:1073207)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at SafeAreaProviderShim (address at index.android.bundle:1:1071585)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at wrapper (address at index.android.bundle:1:1474984)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ThemeProvider (address at index.android.bundle:1:1203310)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at EnsureSingleNavigator (address at index.android.bundle:1:1200080)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at BaseNavigationContainer (address at index.android.bundle:1:1178561)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at NavigationContainerInner (address at index.android.bundle:1:1477726)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ContextNavigator (address at index.android.bundle:1:1475182)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at ExpoRoot (address at index.android.bundle:1:1474892)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at App (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at RCTView (<anonymous>)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:489598)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at anonymous (address at index.android.bundle:1:493642)
09-22 15:40:43.897 29875 29933 E unknown:ReactHost: at AppContainer (address at index.android.bundle:1:488798)
MANDATORY Reproducer
Screenshots and Videos


Metadata
Metadata
Assignees
Labels
Component: RefreshControlNeeds: Author FeedbackNeeds: ReproThis issue could be improved with a clear list of steps to reproduce the issue.This issue could be improved with a clear list of steps to reproduce the issue.Resolution: PR SubmittedA pull request with a fix has been provided.A pull request with a fix has been provided.