Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(login)!: Fix slow login by delaying messenger filters initialization #20173

Merged
merged 4 commits into from
Jun 11, 2024

Conversation

ilmotta
Copy link
Contributor

@ilmotta ilmotta commented May 24, 2024

Fixes #20059

Summary

This PR fixes the slow login when users have joined large communities, such as the Status one. Related status-go PR status-im/status-go#5229.

Note: This PR stayed in WIP for a while until we were sure the solution was reliable enough to deserve code reviews.

About the fix

What we mean by "slow" is that the user was getting stuck on the login screen for almost 20s in some devices (even on iOS things were bad). And this entire process was happening in status-go, hence this PR is not about optimizing the client directly.

By "login" we mean the process to authenticate and initialize vital data in status-go. Setting up message filters can be slow with large communities, and that's exactly this part we moved out of the login phase in status-go. This step now happens implicitly when the client calls wakuext_startMessenger.

In a way, the solution makes sense because setting up filters isn't essential for the user to access other parts of the app, such as the Wallet, Settings, Profile, and Activity Center.

Demo

Login goes fast now :)

fast-login.webm

Once approved, can we merge this PR?

No. This PR and the status-go one can only be merged once we get the green light from Desktop team because there could be breaking changes for them, just as there were for us.

How can we magically eliminate the login delay?

In reality, the time we used to spent during login, blocking the user, still happens, but it happens in the background and after the user is redirected to the home screen. This also means that, until the filters are established, all chats are still in their "loading skeleton state".

In terms of UX, this is probably fine as long as it doesn't take too long for this setup to finish in status-go. In the future, we have room to further optimize how filters are set up in status-go.

Steps to test

This PR was already lightly QAed, but it is recommended to check regressions in these areas:

  • User can see their data after login and can interact with it. That means chat, communities, contacts, contact requests, notifications, wallet accounts, etc.
  • User is correctly redirected to the last opened screen.
  • User can logout successfully.
  • User can send and receive messages.
  • User can sync.

status: ready

@ilmotta ilmotta self-assigned this May 24, 2024
@status-github-bot status-github-bot bot added this to REVIEW in Pipeline for QA May 24, 2024
@status-im-auto
Copy link
Member

status-im-auto commented May 24, 2024

Jenkins Builds

Click to see older builds (44)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 90b7d90 #1 2024-05-24 16:21:11 ~7 min tests 📄log
✔️ 90b7d90 #1 2024-05-24 16:22:33 ~8 min android-e2e 🤖apk 📲
✔️ 90b7d90 #1 2024-05-24 16:23:30 ~9 min android 🤖apk 📲
✔️ 90b7d90 #1 2024-05-24 16:25:14 ~11 min ios 📱ipa 📲
✔️ 1c71628 #2 2024-05-28 11:58:53 ~5 min tests 📄log
✔️ 1c71628 #2 2024-05-28 12:02:39 ~9 min android-e2e 🤖apk 📲
✔️ 1c71628 #2 2024-05-28 12:02:49 ~9 min android 🤖apk 📲
✔️ 1c71628 #2 2024-05-28 12:03:31 ~10 min ios 📱ipa 📲
✔️ f284a23 #3 2024-05-30 00:32:17 ~4 min tests 📄log
✔️ f284a23 #3 2024-05-30 00:33:34 ~5 min android 🤖apk 📲
✔️ f284a23 #3 2024-05-30 00:36:05 ~8 min android-e2e 🤖apk 📲
✔️ f284a23 #3 2024-05-30 00:37:28 ~9 min ios 📱ipa 📲
✔️ b4b0141 #4 2024-05-31 12:50:03 ~4 min tests 📄log
✔️ b4b0141 #4 2024-05-31 12:53:39 ~8 min android 🤖apk 📲
✔️ b4b0141 #4 2024-05-31 12:54:20 ~9 min android-e2e 🤖apk 📲
✔️ b4b0141 #4 2024-05-31 12:55:46 ~10 min ios 📱ipa 📲
✔️ eeb494f #5 2024-05-31 14:14:15 ~6 min tests 📄log
✔️ eeb494f #5 2024-05-31 14:15:02 ~6 min android-e2e 🤖apk 📲
✔️ eeb494f #5 2024-05-31 14:17:48 ~9 min ios 📱ipa 📲
✔️ eeb494f #5 2024-05-31 14:21:42 ~13 min android 🤖apk 📲
✔️ 15df9e8 #6 2024-06-03 21:40:16 ~5 min tests 📄log
✔️ 15df9e8 #6 2024-06-03 21:42:49 ~7 min android-e2e 🤖apk 📲
✔️ 15df9e8 #6 2024-06-03 21:44:52 ~9 min ios 📱ipa 📲
✔️ 15df9e8 #6 2024-06-03 21:45:36 ~10 min android 🤖apk 📲
✔️ 0263170 #7 2024-06-05 20:21:24 ~4 min tests 📄log
✔️ 0263170 #7 2024-06-05 20:25:20 ~8 min android-e2e 🤖apk 📲
✔️ 0263170 #7 2024-06-05 20:26:21 ~9 min android 🤖apk 📲
✔️ 0263170 #7 2024-06-05 20:27:14 ~10 min ios 📱ipa 📲
✔️ 6834012 #9 2024-06-05 22:16:08 ~4 min tests 📄log
✔️ 6834012 #9 2024-06-05 22:19:53 ~8 min android-e2e 🤖apk 📲
✔️ 6834012 #9 2024-06-05 22:20:52 ~9 min android 🤖apk 📲
✔️ 6834012 #9 2024-06-05 22:21:11 ~10 min ios 📱ipa 📲
✔️ 7af9c78 #10 2024-06-10 10:43:07 ~5 min tests 📄log
✔️ 7af9c78 #10 2024-06-10 10:46:41 ~9 min android-e2e 🤖apk 📲
✔️ 7af9c78 #10 2024-06-10 10:47:37 ~10 min ios 📱ipa 📲
✔️ 7af9c78 #10 2024-06-10 10:47:48 ~10 min android 🤖apk 📲
✔️ f3ad378 #11 2024-06-10 15:17:18 ~5 min tests 📄log
✔️ f3ad378 #11 2024-06-10 15:18:46 ~6 min android-e2e 🤖apk 📲
✔️ f3ad378 #11 2024-06-10 15:20:46 ~8 min android 🤖apk 📲
✔️ f3ad378 #11 2024-06-10 15:26:26 ~14 min ios 📱ipa 📲
✔️ d4b6690 #12 2024-06-11 09:57:01 ~4 min tests 📄log
✔️ d4b6690 #12 2024-06-11 10:00:12 ~7 min android-e2e 🤖apk 📲
✔️ d4b6690 #12 2024-06-11 10:01:06 ~8 min android 🤖apk 📲
✔️ d4b6690 #12 2024-06-11 10:02:41 ~10 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 281f540 #13 2024-06-11 10:08:37 ~4 min tests 📄log
✔️ 281f540 #13 2024-06-11 10:11:56 ~7 min android-e2e 🤖apk 📲
✔️ 281f540 #13 2024-06-11 10:11:57 ~7 min android 🤖apk 📲
✔️ 281f540 #13 2024-06-11 10:13:24 ~9 min ios 📱ipa 📲
✔️ 9400c83 #14 2024-06-11 10:24:57 ~4 min tests 📄log
✔️ 9400c83 #14 2024-06-11 10:27:22 ~7 min android-e2e 🤖apk 📲
✔️ 9400c83 #14 2024-06-11 10:28:47 ~8 min android 🤖apk 📲
✔️ 9400c83 #14 2024-06-11 10:36:52 ~16 min ios 📱ipa 📲

@ilmotta
Copy link
Contributor Author

ilmotta commented May 24, 2024

@churik, @qoqobolo, @pavloburykh, @cammellos: This PR build should theoretically solve the slow login issue. As we aligned yesterday, the plan is to merge PR #20164 before this one because it reduces the time to login and it's helpful even if the solution presented in this PR ends up not working.

QAs: Once you give the green light that the build solves the login problem, I'll open the PR for reviews, update status-go unit tests and coordinate with desktop if the PR is a breaking change. Just a light check on your end would help a lot. Then you can do a full QA after the PR goes out of WIP and gets dev approvals.

@churik
Copy link
Member

churik commented May 28, 2024

@ilmotta,

PR_ISSUE 1: Cannot sync with desktop 2.29

I noticed one breaking change: the sync with the desktop failed and returned an error.

IMAGE 2024-05-28 14:46:24

logs (85).zip

We're currently checking on version 2.29. If we test the desktop builds with the same commit, it might resolve the issue. Unfortunately, we don't have a process in place to create status-desktop builds from status-go changes.

@ilmotta
Copy link
Contributor Author

ilmotta commented May 28, 2024

PR_ISSUE 1: Cannot sync with desktop 2.29

Thanks a lot @churik. Because we'are delaying some parts of the messenger initialization (and it does prepare installations), this could be the cause of the sync failure.

I will investigate the problem 👍🏼

@churik
Copy link
Member

churik commented May 28, 2024

PR_ISSUE 2: no redirect to the last opened channel / chat

Steps:

  1. restore or create multiaccount
  2. join any community, open channel view
  3. reopen app
  4. login

Expected result:
will be redirected to channel view

Actual result:
redirected to home screen

OS: IOS, Android

PR_ISSUE 3: after loading history chat view reloads by itslef

Steps:

  1. restore or create multiaccount
  2. join status community
  3. reopen app
  4. login > open general channel

Expected result:
can see the channel when I navigate to it

Actual result:

FILE.2024-05-28.15.23.37.mp4

(17 sec to load, and then redirect to Status > general one more time)

OS: IOS, Android

Honestly, the issue where channel views take 15-18 seconds to load after login is just as noticeable as the slow login itself. We need to address this 17-second loading skeleton because it is highly visible.

It's difficult to say which issue is the lesser of two evils.

cc @cammellos @ilmotta

@ilmotta
Copy link
Contributor Author

ilmotta commented May 28, 2024

Honestly, the issue where channel views take 15-18 seconds to load after login is just as noticeable as the slow login itself. We need to address this 17-second loading skeleton because it is highly visible.

It's difficult to say which issue is the lesser of two evils.

I think the new solution is definitely better if we can make it work of course. The login step is a critical part of the funnel to grow our user base. And once the user logs in, they can use many other things in the app, not just chats, whereas the current solution (in develop) simply blocks users from using anything in the app.

We can (maybe) speed up how chats are processed in status-go in the future, but even if we manage to do that, it won't be as fast as not doing anything in the login (which is the new proposal). So @churik @cammellos, I think we should pursue this solution because it leads to the fastest possible login and the slow chat processing can be attacked separately.

@cammellos
Copy link
Member

@ilmotta definitely we should load things once the user logs in, that's also in line with the fact that for 2.30 probably wallet will be the first tab, so it will be much less evident

@ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from 1c71628 to f284a23 Compare May 30, 2024 00:27
@ilmotta
Copy link
Contributor Author

ilmotta commented May 30, 2024

Update on 2024-05-29

  • ISSUE 1 about sync issue I could not reproduce, that is, I successfully synced from desktop to mobile in version 2.29.0-rc.6 and from desktop revision 634591b69f58e0e9a9b2955dd195b53df72fee50 (an old one from 3 months ago I had around).
  • Fixed ISSUE 2 to redirect user to last chat.
  • Fixed ISSUE 3 to not reload chat once already open (root cause was the same as ISSUE 2.

@churik, could you check this issue using the latest version from GH releases, the one I used 2.29.0-rc.6? I'm asking you that because I successfully synced using two very different desktop versions, so something tells me syncing is working, at least sometimes (which is odd, I'd expect the changes I made in status-go to either always cause a failure or not). Also, which exact desktop git revision did you use, Android version, app flags, steps to sync, etc? Just so I can more faithfully try to reproduce. Thank you!

Update on 2024-05-31

  • Rebased to latest develop in status-go and rebased mobile PR.
  • Finally reproduced sync error consistently. Error was fixed by initializing installations before the node.login event is emitted by status-go.

@pavloburykh pavloburykh self-assigned this May 31, 2024
@ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from f284a23 to b4b0141 Compare May 31, 2024 12:44
@pavloburykh
Copy link
Contributor

@ilmotta thank you for your fixes!

I have just checked ISSUE 1 and unfortunately still getting error while syncing. I have used latest (30.05) RC6 Desktop

photo_2024-05-31 15 48 51

@ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from b4b0141 to eeb494f Compare May 31, 2024 14:07
@pavloburykh
Copy link
Contributor

@ilmotta ISSUE 1 (sync error) has been fixed for me in latest builds. Great job!

Will continue testing the rest on Monday, hopefully Waku issues will be fixed by that time.

@pavloburykh
Copy link
Contributor

QA Notes from @ilmotta

Things to watch out for in testing is anything related to sharding and contacts, just because I didn't test any of these things. They should work the same

@status-im-auto
Copy link
Member

14% of end-end tests have passed

Total executed tests: 51
Failed tests: 42
Expected to fail tests: 2
Passed tests: 7
Not executed tests: 1
IDs of not executed tests: 702936 
IDs of failed tests: 703194,702777,704615,702745,702851,702839,702731,702730,702808,702732,702809,702840,702786,702947,702783,702855,703086,702784,702813,703629,702844,702733,703133,727230,702838,703391,702894,727229,703496,702859,702948,702845,703202,702850,702957,702807,702841,702782,703495,703297,702958,702843 
IDs of expected to fail tests: 703503,727232 

Not executed tests (1)

Click to expand
  • Rerun not executed tests
  • Failed tests (42)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_edit_delete_message_when_offline, id: 704615

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    3. test_community_message_delete, id: 702839

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    4. test_community_emoji_send_copy_paste_reply, id: 702840

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    5. test_community_mark_all_messages_as_read, id: 703086

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    6. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    7. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    8. test_community_contact_block_unblock_offline, id: 702894

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    9. test_community_one_image_send_reply, id: 702859

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    10. test_community_unread_messages_badge, id: 702841

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    11. test_community_message_edit, id: 702843

    Test setup failed: critical/chats/test_public_chat_browsing.py:297: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find WalletTab by accessibility id: wallet-stack-tab

    critical/test_wallet.py:120: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:41: in _get_balances_before_tx
        self.wallet_1.wallet_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: WalletTab by accessibility id: `wallet-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Tap on found: LogInButton
    Device 1: Find Button by accessibility id: done

    critical/test_wallet.py:111: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:88: in confirm_transaction
        self.done_button.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `done` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    2. test_1_1_chat_pin_messages, id: 702731

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    3. test_1_1_chat_message_reaction, id: 702730

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    4. test_1_1_chat_edit_message, id: 702855

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    5. test_1_1_chat_push_emoji, id: 702813

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    6. test_1_1_chat_text_message_delete_push_disappear, id: 702733

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    7. test_1_1_chat_send_image_save_and_share, id: 703391

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    8. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Test setup failed: critical/chats/test_1_1_public_chats.py:40: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:823: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_mentions_push_notification, id: 702786

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: critical/chats/test_public_chat_browsing.py:823: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    3. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:823: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    4. test_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:823: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    5. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:823: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user_1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_offline_pn, id: 702808

    Test setup failed: critical/chats/test_group_chat.py:55: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    2. test_group_chat_pin_messages, id: 702732

    Test setup failed: critical/chats/test_group_chat.py:55: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    3. test_group_chat_reactions, id: 703202

    Test setup failed: critical/chats/test_group_chat.py:55: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    4. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: critical/chats/test_group_chat.py:55: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element 
    

    [[Issue with a message status - Sent instead of Delivered, https://github.com//issues/20126]]

    Device sessions

    5. test_group_chat_mute_chat, id: 703495

    Test setup failed: critical/chats/test_group_chat.py:55: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    6. test_group_chat_send_image_save_and_share, id: 703297

    Test setup failed: critical/chats/test_group_chat.py:55: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: activity_center/test_activity_center.py:258: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: activity_center/test_activity_center.py:398: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958

    Test setup failed: activity_center/test_activity_center.py:398: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: critical/chats/test_1_1_public_chats.py:559: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    2. test_1_1_chat_delete_via_long_press_relogin, id: 702784

    Test setup failed: critical/chats/test_1_1_public_chats.py:559: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    3. test_1_1_chat_mute_chat, id: 703496

    Test setup failed: critical/chats/test_1_1_public_chats.py:559: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'sender')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    activity_center/test_activity_center.py:202: in test_add_contact_field_validation
        self.home_2.handle_contact_request(new_username_1)
    ../views/home_view.py:410: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:162: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:159: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:163: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'test user 123')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851

    Device 1: Find ChatsTab by accessibility id: chats-stack-tab
    Device 1: Tap on found: ChatsTab

    activity_center/test_activity_center.py:120: in test_activity_center_contact_request_accept_swipe_mark_all_as_read
        self.home_1.notifications_unread_badge.wait_for_visibility_of_element(30)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: BaseElement by accessibility id:`activity-center-unread-count` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850

    Device 1: Find Button by accessibility id: tab-contacts
    Device 1: Find Text by xpath: //*[@content-desc="pending-contact-requests-count"]/android.widget.TextView

    activity_center/test_activity_center.py:73: in test_activity_center_contact_request_decline
        if self.home_1.pending_contact_request_text.text != '1':
    ../views/base_element.py:416: in text
        text = self.find_element().text
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Text by xpath: `//*[@content-desc="pending-contact-requests-count"]/android.widget.TextView` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    Device 1: Find Button by accessibility id: show-profiles
    Device 1: Tap on found: Button

    critical/chats/test_public_chat_browsing.py:277: in test_restore_multiaccount_with_waku_backup_remove_switch
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     zQ3...dWXh5 was not restored as a contact from waku backup!
    E    zQ3...Vacac was not restored as a contact from waku backup!
    E    admin_open was not restored from waku-backup!!
    E    member_open was not restored from waku-backup!!
    E    admin_closed was not restored from waku-backup!!
    E    member_closed was not restored from waku-backup!!
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is 0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:214: in test_wallet_add_remove_watch_only_account
        self.home_view.driver.fail(
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Incorrect address '0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0x8d2413447ff297d30bdc475f6d5cb00254685aae' 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Passed tests (7)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_mute_community_and_channel, id: 703382
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    @ilmotta please take a look at the following issue

    ISSUE 4 Contact requests are not delivered

    Preconditions: User A and User B both are using current PR builds.

    Steps:

    1. User A sends contact request to User B
    2. See if contact request is delivered to User B

    Actual result: contact request is not delivered.

    android_crReceiver.zip

    ios_crSender.zip

    cr_notDelivered.mp4

    @ilmotta
    Copy link
    Contributor Author

    ilmotta commented Jun 3, 2024

    @pavloburykh I'll verify ISSUE 4, thank you! By the way, have you checked other parts of the app? Are they working fine overall? Or did you stop testing as soon as you hit ISSUE 4?

    @ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from eeb494f to 15df9e8 Compare June 3, 2024 21:34
    @ilmotta
    Copy link
    Contributor Author

    ilmotta commented Jun 3, 2024

    @pavloburykh, ISSUE 4 fixed.

    I think this WIP PR proved to be successful in fixing the slow login. I feel confident enough we can promote both the status-go and mobile WIP PRs to be non-WIP, adapt status-go unit tests and get both PRs through the normal PR process, which after all will go through a normal QA cycle in the end.

    For now, I think it's fine if you stop testing this WIP PR, so that your team avoids rework since you'll be testing this PR in the near future anyway once the PRs are approved in status-go and status-mobile.

    Thanks QA team for all the help so far o/

    @pavloburykh
    Copy link
    Contributor

    @pavloburykh I'll verify ISSUE 4, thank you! By the way, have you checked other parts of the app? Are they working fine overall? Or did you stop testing as soon as you hit ISSUE 4?

    Hi @ilmotta I have tried smoke checking other parts, but due to Waku issues I was unable to check properly. Also I have stopped testing once I have faced ISSUE 4 as this was a critical issue which can be considered as a criteria to quit testing until bug is addressed.

    So, as you have mentioned above - we will need to perform another round of checking once PR is approved. Currently we do not have a strong opinion if we want to include this PR in 2.29 release, probably we will have to postpone until 2.30 as we already crossed the deadline for releasing 2.29 (due to lot of found blockers) and all resources are focused on finishing release testing. cc @churik

    Thank you for your work on this PR @ilmotta

    @ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from 15df9e8 to 0263170 Compare June 5, 2024 20:16
    @ilmotta ilmotta changed the title [WIP] Fix slow login perf(login)!: Fix slow login by delaying messenger filters initialization Jun 5, 2024
    @pavloburykh pavloburykh moved this from E2E Tests to IN TESTING in Pipeline for QA Jun 7, 2024
    @pavloburykh
    Copy link
    Contributor

    @ilmotta thank you for great work! No issues from my side so I am moving PR forward.

    One thing: please, let me know in case this issue will require fixes on go side. In this case I will need to re-test PR for regression.

    Also, before merging the PR it is better to make another e2e test run. I have just noticed that status - go branch is very outdated (32 commits behind develop). So we need to run e2e against rebased branch (it can be done right before you will be ready for merging).

    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Jun 7, 2024

    oh, we still need to get this PR reviewed...Please, let me know if there will be any changes based on PR review. In this case I will also need to perform re-test.

    @pavloburykh pavloburykh moved this from IN TESTING to MERGE in Pipeline for QA Jun 7, 2024
    @ilmotta
    Copy link
    Contributor Author

    ilmotta commented Jun 7, 2024

    @pavloburykh, thank you again for testing the build. Great news. Apparently desktop doesn't have regressions.

    I'll definitely rebase and re-run e2e before merging. If it takes more than next Tuesday to get this PR approved, then it's probably prudent to have another quick QA pass just in case. Thanks for the reminder.

    @ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from 6834012 to 7af9c78 Compare June 10, 2024 10:37
    @ilmotta ilmotta moved this from MERGE to REVIEW in Pipeline for QA Jun 10, 2024
    @ilmotta ilmotta moved this from REVIEW to E2E Tests in Pipeline for QA Jun 10, 2024
    @status-im-auto
    Copy link
    Member

    86% of end-end tests have passed

    Total executed tests: 51
    Failed tests: 3
    Expected to fail tests: 4
    Passed tests: 44
    Not executed tests: 1
    
    IDs of not executed tests: 702936 
    
    IDs of failed tests: 727230,704613,727229 
    
    IDs of expected to fail tests: 703495,702948,727232,703629 
    

    Not executed tests (1)

    Click to expand
  • Rerun not executed tests
  • Failed tests (3)

    Click to expand
  • Rerun failed tests

  • Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613

    Device 1: Find `Text` by `accessibility id`: `community-title`
    Device 1: `Text` is `Closed community`

    critical/test_deep_and_universal_links.py:71: in test_links_open_universal_links_from_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Community 'Open community for e2e' was not requested to join by the url https://status.app/c/GzwAAGS9TbI9CiYaoZj0TRNelWAPwk8gSHIEmqgqb0ADPw5rnFvk6bp_n3BlZxVMshmxFyI=#zQ3shkrmSmwb66sw2EuUvC5iqiNqEeevTfjtks3p8ZaaCYoNj
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find WalletTab by accessibility id: wallet-stack-tab

    critical/test_wallet.py:120: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:41: in _get_balances_before_tx
        self.wallet_1.wallet_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: WalletTab by accessibility id: `wallet-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Tap on found: LogInButton
    Device 1: Find Button by accessibility id: done

    critical/test_wallet.py:111: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:88: in confirm_transaction
        self.done_button.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `done` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Expected to fail tests (4)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is 0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:214: in test_wallet_add_remove_watch_only_account
        self.home_view.driver.fail(
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Incorrect address '0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0x8d2413447ff297d30bdc475f6d5cb00254685aae' 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_hashtag_links_to_community_channels, id: 702948

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'#cats')]
    Device 2: Looking for a message by text: it is just a message text

    critical/chats/test_public_chat_browsing.py:1124: in test_community_hashtag_links_to_community_channels
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message in community channel is not visible for user before join 
    

    [[Can't enter channel after community is fetched for the first time, https://github.com//issues/20395]]

    Device sessions

    2. test_community_join_when_node_owner_offline, id: 703629

    Device 2: Looking for community: 'open community'
    Device 2: Click until Text by accessibility id: community-description-text will be presented

    critical/chats/test_public_chat_browsing.py:1212: in test_community_join_when_node_owner_offline
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message in community channel is not visible for user before join, it was indicated as not sent for the sender before he went offline 
    

    [[Can't enter channel after community is fetched for the first time, https://github.com//issues/20395]]

    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:497: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Passed tests (44)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_discovery, id: 703503
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    6. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    5. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_delete, id: 702839
    Device sessions

    8. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_unread_messages_badge, id: 702841
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_deep_links, id: 702775
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_leave, id: 702845
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    Hey @ilmotta! I have smoked checked the PR after rebasing, no issues from my side. Failed e2e are not PR related. Thank you again for great job! ready for merge.

    @pavloburykh pavloburykh moved this from E2E Tests to MERGE in Pipeline for QA Jun 10, 2024
    ilmotta added a commit to status-im/status-go that referenced this pull request Jun 10, 2024
    Fixes the slow login in mobile devices when users have joined large communities,
    such as the Status one. A user would get stuck for almost 20s in some devices.
    
    We identified that the step to set-up filters in the messenger is potentially
    expensive and that it is not critical to happen before the node.login signal is
    emitted. The solution presented in this PR is to set-up filters inside
    messenger.Start(), which the client already calls immediately after login.
    
    With this change, users of the mobile app can login pretty fast even when they
    joined large communities. They can immediately interact with other parts of the
    app even if filter initialization is running in the background, like Wallet,
    Activity Center, Settings, and Profile.
    
    Breaking changes: in the mobile repository, we had to change where the endpoint
    wakuext_startMessenger was called and the order of a few events to process
    chats. So essentially ordering, but no data changes.
    
    - Root issue status-im/status-mobile#20059
    - Related mobile PR status-im/status-mobile#20173
    @pavloburykh
    Copy link
    Contributor

    @qoqobolo thank you for identifying transaction issue! @ilmotta sorry, when I have checked failed e2e I ignored wallet tests failures, because they have been failing for a long time already but due to other reason, that's why I missed the bug.

    @ilmotta
    Copy link
    Contributor Author

    ilmotta commented Jun 10, 2024

    @qoqobolo thank you for identifying transaction issue! @ilmotta sorry, when I have checked failed e2e I ignored wallet tests failures, because they have been failing for a long time already but due to other reason, that's why I missed the bug.

    Good thing it was found on time! I added the label blocked in the meantime.

    @ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch 2 times, most recently from d4b6690 to 281f540 Compare June 11, 2024 10:03
    @ilmotta ilmotta force-pushed the ilmotta-20059/speed-up-login branch from 281f540 to 9400c83 Compare June 11, 2024 10:20
    @ilmotta ilmotta merged commit 9f245ce into develop Jun 11, 2024
    5 checks passed
    Pipeline for QA automation moved this from MERGE to DONE Jun 11, 2024
    @ilmotta ilmotta deleted the ilmotta-20059/speed-up-login branch June 11, 2024 10:41
    @pavloburykh pavloburykh mentioned this pull request Jun 11, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: DONE
    Status: Done
    Development

    Successfully merging this pull request may close these issues.

    Slow app login
    7 participants