RevenueCat / react-native-purchases

React Native in-app purchases and subscriptions made easy. Support for iOS and Android.
https://www.revenuecat.com
MIT License
773 stars 84 forks source link

Purchase Package Error in React Native #1124

Open lenage opened 2 weeks ago

lenage commented 2 weeks ago

When attempting to make a purchase using RevenueCat's purchasePackage method, the app throws a "Malformed calls from JS" error with a TypeError indicating properties are not configurable.

Environment

Steps to Reproduce

  1. Select a package for purchase
  2. Call Purchases.purchasePackage(package)
  3. Error occurs during the purchase process

Code example


typescript
try {
const purchaseResult = await RevenueCat.purchasePackage(selectedPackage);
return purchaseResult;
} catch (error) {
console.log("Error during purchase:", error);
throw error;
}

Error Log

iOS Bundled 277ms node_modules/expo-router/entry.js (1 module)
 ERROR  Error: Exception in HostFunction: Malformed calls from JS: field sizes are different.

[[9,77,77,79,79,56],[7,0,1,1,1,3],[[500,100,1730706566431,false],[500],["{\"type\":\"log\",\"level\":\"error\",\"mode\":\"BRIDGE\",\"data\":[\"Failed to purchase package:\",\"[TypeError: property is not configurable]\"]}",1],["{\"type\":\"log\",\"level\":\"log\",\"mode\":\"BRIDGE\",\"data\":[\"Error during purchase:\",\"[TypeError: property is not configurable]\"]}",1],[2967,"RCTRawText",1,{"text":""}]],2569]

This error is located at:
    in RCTText (created by Text)
    in Text (created by Icon)
    in Icon (created by Icon)
    in Icon
    in NativeWind.Icon
    in NativeWind.NoName
    in Unknown (created by MenuItem)
    in RCTView (created by View)
    in View
    in NativeWind.View
    in NativeWind.NoName
    in Unknown (created by MenuItem)
    in RCTView (created by View)
    in View
    in NativeWind.View
    in NativeWind.NoName
    in Unknown (created by SlotClone)
    in SlotClone (created by Slot)
    in Slot
    in ExpoRouterLink (created by MenuItem)
    in RCTView (created by View)
    in View (created by Pressable)
    in Pressable (created by Pressable)
    in MenuItem
    in RCTView (created by View)
    in View
    in NativeWind.View
    in RCTView (created by View)
    in View
    in NativeWind.View
    in NativeWind.NoName
    in Unknown
    in RCTView (created by View)
    in View
    in NativeWind.View
    in NativeWind.NoName
    in Unknown
    in RCTScrollContentView (created by ScrollView)
    in RCTScrollView (created by ScrollView)
    in ScrollView (created by ScrollView)
    in ScrollView
    in NativeWind.ScrollView
    in NativeWind.NoName
    in Unknown
    in RCTView (created by View)
    in View
    in NativeWind.View
    in NativeWind.NoName
    in Unknown
    in Unknown
    in Unknown (created by Route(profile))
    in Suspense (created by Route(profile))
    in Route (created by Route(profile))
    in Route(profile) (created by SceneView)
    in StaticContainer
    in EnsureSingleNavigator (created by SceneView)
    in SceneView (created by SceneView)
    in RCTView (created by View)
    in View (created by DebugContainer)
    in RCTView (created by View)
    in View (created by AppContainer)
    in RCTView (created by View)
    in View (created by AppContainer)
    in AppContainer (created by DebugContainer)
    in DebugContainer (created by MaybeNestedStack)
    in MaybeNestedStack (created by SceneView)
    in RCTView (created by View)
    in View (created by SceneView)
    in RNSModalScreen (created by Animated(Anonymous))
    in Animated(Anonymous) (created by InnerScreen)
    in Suspender (created by Freeze)
    in Suspense (created by Freeze)
    in Freeze (created by DelayedFreeze)
    in DelayedFreeze (created by InnerScreen)
    in InnerScreen (created by Screen)
    in Screen (created by SceneView)
    in SceneView (created by NativeStackViewInner)
RCGitBot commented 2 weeks ago

👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

jdconley commented 2 weeks ago

I just started a brand new integration. I'm seeing this on Android as well. On iOS I was able to use purchaseStoreProduct and that worked. But Android still exhibits the error. getOfferings and getCustomerInfo seem to work just fine. For now I have one package with one product in it per platform that is consumable. I have only tried this on physical devices with debug builds, no simulators or release builds.

Any workaround? Obviously this is a blocker...

Update: I've installed all the way back to v7.28.1 of this package (SDK version 7.12.0 on Android) and the error still occurs.