Skip to content

Conversation

@jvsena42
Copy link
Member

@jvsena42 jvsena42 commented Dec 13, 2025

Description

This test fails randomly in android for two reasons:

  1. RBF -> Returns to home before the new transaction is displayed -> intent to selected the new transaction created after boost but click in the old transaction instead -> Await for the boost button update to "boost finished" but the transaction updates to "removed from mempool instead
  2. If not fail on the previous step, the automation try to return to the Home Screen from the drawer, but the app displays a "transaction removed from mempool" toast and the CI timeouts trying to find the drawer button

The iOS app don't fail because:

  1. After boost, it performs LDK node and activity syncs before returning to home
  2. The "Transaction replaced" toast is replaced immediately by the boost success toast
ios-rbf.mp4

Solution:

  1. After successful boost, perform LDK node and activities sync (may increase the operation time for wallet with many transactions)
  2. For toast:
    2.1. Cancel autohide like iOS (I'll try this solution first, but UX wise, I'd prefer the current logic of keeping the delay between toasts)
    2.2. Or remove "Transaction removed from mempool" toast, because it doesn't exists in the figma
    2.3 Or increase the timeout of the test action, or update it to dismiss the toasts

Preview

Screen_recording_20251214_085024.webm

QA Notes

  • Perform RBF
  • Perform CPFP

@jvsena42 jvsena42 self-assigned this Dec 13, 2025
@jvsena42 jvsena42 marked this pull request as draft December 13, 2025 17:59
@jvsena42 jvsena42 marked this pull request as ready for review December 14, 2025 11:52
@jvsena42
Copy link
Member Author

jvsena42 commented Dec 14, 2025

Not ready for review yet, just testing E2E

@jvsena42
Copy link
Member Author

jvsena42 commented Dec 14, 2025

@jvsena42 jvsena42 requested a review from Copilot December 14, 2025 16:52
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a race condition in the boost transaction flow that was causing random test failures in Android. When a transaction is boosted via RBF or CPFP, the app now properly syncs the Lightning node and activities before completing the operation, and immediately dismisses any existing toasts to prevent the "Transaction removed from mempool" toast from interfering with the "Boost successful" toast.

Key changes:

  • Added Lightning node and activity sync after successful transaction boost
  • Changed toast queue behavior to immediately dismiss current toast when showing a new one

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
BoostTransactionViewModel.kt Added sync calls for Lightning node and activities after successful boost to ensure UI state is current
ToastQueueManager.kt Changed toast display logic to immediately dismiss current toast instead of queuing, matching iOS behavior

@jvsena42 jvsena42 marked this pull request as draft December 14, 2025 17:21
@jvsena42 jvsena42 marked this pull request as ready for review December 14, 2025 17:33
@jvsena42
Copy link
Member Author

@jvsena42 jvsena42 requested a review from ovitrif December 14, 2025 18:44
Copy link
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utAck

@ovitrif ovitrif merged commit 57c789f into chore/update-deps Dec 15, 2025
20 of 22 checks passed
@ovitrif ovitrif deleted the fix/force-sync-on-boost branch December 15, 2025 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants