fix: wallet home onboarding Rive crash on Android cp-7.81.0#31042
Conversation
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: This is a pure asset update with no code logic changes. The risk is low — animation file updates can only affect visual rendering of the onboarding checklist. The most relevant test tag is Performance Test Selection: |
Description
Fixes a fatal native crash on Android originating in
rive-react-native's checklist Rive animation on the wallet home onboarding screen. Affects ~2.3K production usersRoot cause was in the
.rivasset not being fully aligned with the code. The wallet home checklist Riveonboard_checklist_v05.rivhad inconsistent State Machine inputs across its three artboards:01_Add_Fundsand02_First_Tradewere missing theMaintrigger input that the code fires viafireState('State Machine 1', 'Main').When the code fired a name that didn't match, Rive threw
StateMachineInputException.rive-react-native's native code doesn't clear the pending Java exception before its next JNI call, violating ART's JNI rules and aborting the process (SIGABRT/SIGSEGVdepending on device).Fix:
Maintrigger inputs to01_Add_Fundsand02_First_Trade, wired to theIntro → Maintransition."Outro "to"Outro"on03_Notifications.onboard_checklist_v06.riv.WalletHomeOnboardingSteps.tsxfrom v05 to v06.Verified locally: previously-crashing flows on emulator and arm64 physical device no longer crash, and the ~0.25s animation flicker observed on flagship devices is also gone.
Changelog
CHANGELOG entry: Fixed a native crash on Android affecting users on the wallet home onboarding screen.
Related issues
Fixes: #31103
#31103
Manual testing steps
Screenshots/Recordings
Screen.Recording.2026-06-03.at.2.24.41.PM.mov
Before
Screen.Recording.2026-06-03.at.12.13.53.PM.mov
After
Screen.Recording.2026-06-03.at.2.24.41.PM.mov
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist
Note
Low Risk
Binary animation asset plus a single import path change; no auth, payments, or business-logic changes beyond fixing Rive input names.
Overview
Fixes a production Android native crash on wallet home post-onboarding when the checklist Rive animation runs. The app already drives
MainandOutroonState Machine 1viafireState;onboard_checklist_v05.rivwas out of sync (missingMainon the fund and trade artboards, and a mismatched outro input name on notifications), which led toStateMachineInputExceptionand a fatal JNI abort inrive-react-native.The change re-exports the animation as
onboard_checklist_v06.rivwith aligned triggers and transitions, and pointsWalletHomeOnboardingStepsat v06 instead of v05. No change to the checklist flow logic beyond the asset swap.Reviewed by Cursor Bugbot for commit 1945d4f. Bugbot is set up for automated code reviews on this repo. Configure here.