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

[LOW] [Groups] [$500] Room - Inconsistency in behaviour while adding VOIP number as contact via start chat&room #33932

Closed
3 of 6 tasks
kbecciv opened this issue Jan 4, 2024 · 43 comments
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Internal Requires API changes or must be handled by Expensify staff Reviewing Has a PR in review Weekly KSv2

Comments

@kbecciv
Copy link

kbecciv commented Jan 4, 2024

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 1.4.21-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:

tl,dr from below: Expensify, users shouldn't be allowed to use VoIP phone numbers. In one part of the app, we (inconsistently) allow that. We classified it as a backend issue, and it's waiting to be picked up by an internal engineer.

Action Performed:

  1. Go to https://staging.new.expensify.com/
  2. Tap on a room chat
  3. Tap on header---members----Invite
  4. Paste the VOIP number (+18183305299)
  5. Tap invite
  6. Note user can add VOIP number as contact
  7. Navigate to LHN
  8. Tap fab---Start chat
  9. Paste the VOIP number (+18183305299)
  10. Select the VOIP number (+18183305299) from the list
  11. Note error message is displayed

Expected Result:

User must be not be allowed to add a landline or VOIP contact to a room or other places in the app. The error message that should be returned is the same as if you try to invite them to a chat via steps 7-11 above. "The provided phone number belongs to a landline or VoIP, please use your email address instead."

Actual Result:

In room, Voip number allowed to add as contact but in start chat adding voip number showing error.Inconsistency in behaviour displayed.

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

Bug6331978_1704360576357.voip.mp4

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01907badd5c1783209
  • Upwork Job ID: 1742844313960140800
  • Last Price Increase: 2024-01-18
@kbecciv kbecciv added External Added to denote the issue can be worked on by a contributor Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Jan 4, 2024
@melvin-bot melvin-bot bot changed the title Room - Inconsistency in behaviour while adding VOIP number as contact via start chat&room [$500] Room - Inconsistency in behaviour while adding VOIP number as contact via start chat&room Jan 4, 2024
Copy link

melvin-bot bot commented Jan 4, 2024

Job added to Upwork: https://www.upwork.com/jobs/~01907badd5c1783209

Copy link

melvin-bot bot commented Jan 4, 2024

Triggered auto assignment to @mallenexpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Jan 4, 2024
Copy link

melvin-bot bot commented Jan 4, 2024

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Copy link

melvin-bot bot commented Jan 4, 2024

Triggered auto assignment to Contributor-plus team member for initial proposal review - @0xmiroslav (External)

@brunovjk
Copy link
Contributor

brunovjk commented Jan 4, 2024

Proposal

Please re-state the problem that we are trying to solve in this issue.

Discrepancy in behavior when adding a VoIP user in a workspace and starting a chat.

What is the root cause of that problem?

1 - Allow creating server request for invalid phone numbers (landline or VoIP),
2 - Inconsistency server response when dealing with invalid phone numbers (landline or VoIP).

Where users can invite/add others members/users:
1 - Invite member/user to a workspace
2 - Search a user and 'start chat'
3 - Invite member/user to a regular room
4 - FAB > Start chat
5 - FAB > Request money
6 - FAB > Send Money
7 - FAB > Assign Task

Backend response for then:
1 - "onyxData": [], - "message": "The provided phone number belongs to a landline or VoIP..."
2 - "onyxData": [ { ... createChat": { "1705430486982131": "The provided phone number belongs to a landline or VoIP...

3 - "onyxData": [ { "key": "report_3251340957676970", "onyxMethod": "merge", "value": { "participantAccountIDs": [ 16258318, 16177509, 16256252, 16256248, 16258226, 16205380 ], "participants": [ "[email protected]", "+18183305299", "+18183305295", "+18183305296", "+18173305299", "[email protected]" ], "visibleChatMemberAccountIDs": [ 16258318, 16177509, 16256252, 16256248, 16258226, 16205380 ] } },

4 -"onyxData": [ { ... createChat": { "1705430486982131": "The provided phone number belongs to a landline or VoIP...
5 - "onyxData": [], - "message": "The provided phone number belongs to a landline or VoIP..."
6 - "onyxData": [], - "message": "The provided phone number belongs to a landline or VoIP..."

7 - "onyxData": [ { "key": "report_8859913735881996", "onyxMethod": "merge", "value": { "description": "", "lastVisibleActionCreated": "2024-01-16 19:27:01.357", "managerID": 16258666, "ownerAccountID": 16205380, "parentReportID": "1566167401886507", "reportID": "8859913735881996", "reportName": "tes2", "state": "OPEN", "stateNum": 0, "statusNum": 0, "type": "task" } }, { "key": "personalDetailsList", "onyxMethod": "merge", "value": { "16205380": { "accountID": 16205380, "avatar": "https://d2k5nsl2zxldvw.cloudfront.net/images/avatars/default-avatar_22.png", "displayName": "[email protected]", "firstName": "", ...

Online - UI behavior:
1 - Almost good - a "There was a problem adding ..." instead of "The provided phone number belongs to a landline or VoIP...".
2 - Looks good - Open a disabled report chat with a "The provided phone number belongs to a landline or VoIP..." message.
3 - Big Issue - We can add the member successfully.
4 - Looks good - Open a disabled report chat with a "The provided phone number belongs to a landline or VoIP..." message.
5 - Issue - Open a report full with only skeleton loading.
6 - Issue - Open a report full with only skeleton loading.
7 - Big Issue - We create a task and assign the member successfully.

Off - UI behavior:
1 - Looks good - Able to invite, disable look.
2 - Looks good - Able to start a chat and a conversation, disabled look.
3 - Issue - Able to invite, 'pressed' look after invite instead of disabled. #34671
image
4 - Looks good - Able to start a chat and a conversation, disabled look.
5 - Looks good - Able to create a iou report and a conversation, disabled look.
6 - Looks good - Able to create a iou report and a conversation, disabled look.
7 - Looks good - Able to create a task report and a conversation, disabled look.

What changes do you think we should make in order to solve the problem?

Create a landline or VoIP form validation. #24519 (comment)

Since we need the backend to verify a number, we need Standardize backend responses when the check for VOIP and landline is true.

What alternative solutions did you explore? (Optional)

@melvin-bot melvin-bot bot added the Overdue label Jan 8, 2024
@mallenexpensify
Copy link
Contributor

mallenexpensify commented Jan 9, 2024

Updated the Expected behaviour in the OP

Expected Result:

User must be not be allowed to add a landline or VOIP contact to a room or other places in the app. The error message that should be returned is the same as if you try to invite them to a chat via steps 7-11 above. "The provided phone number belongs to a landline or VoIP, please use your email address instead."

@brunovjk @0xmiroslav and others, let's make sure we're testing any other ways/places a user can be added to ensure we surface the "The provided phone number belongs to a landline or VoIP, please use your email address instead." error everywhere. I want to fix all instances at once and not manage multiple GH issues.

@melvin-bot melvin-bot bot removed the Overdue label Jan 9, 2024
@Victor-Nyagudi

This comment was marked as outdated.

Copy link

melvin-bot bot commented Jan 11, 2024

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@melvin-bot melvin-bot bot added the Overdue label Jan 11, 2024
Copy link

melvin-bot bot commented Jan 12, 2024

@mallenexpensify, @0xmiroslav Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@mallenexpensify
Copy link
Contributor

d'oh, tagged wrong person and not you @0xmiroslav , can you please review my comment above and the proposals? Thx

@melvin-bot melvin-bot bot removed the Overdue label Jan 15, 2024
@brunovjk
Copy link
Contributor

Proposal

Updated

Copy link

melvin-bot bot commented Jan 18, 2024

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@melvin-bot melvin-bot bot added the Overdue label Jan 18, 2024
Copy link

melvin-bot bot commented Jan 18, 2024

@mallenexpensify @0xmiroslav this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!

@0xmiros
Copy link
Contributor

0xmiros commented Jan 18, 2024

@brunovjk Thanks for the proposal. I see you directly linked to #24519 (comment). Can you add some context behind it?

@melvin-bot melvin-bot bot removed the Overdue label Jan 18, 2024
@brunovjk
Copy link
Contributor

brunovjk commented Jan 18, 2024

Can you add some context behind it?

@0xmiroslav although 'I think on top of the proposal, they should implement some sort of check in the front-end for whether the provided phone number is valid before creating an' report #24519 (comment)
I understood that 'these validations are meant to happen on the backend since we can't easily verify if a phone number is VOIP (from its format, we can check but it's not dependable)' #24519 (comment)

This is what I found on Github+Slack, maybe there is a better discussion on the subject, I don't know, but I understand the difficulty of trusting these validators on the frontend, and I wonder about the feasibility of standardizing responses when validation for an invalid number is true.

@melvin-bot melvin-bot bot added Overdue and removed Overdue labels Jan 22, 2024
Copy link

melvin-bot bot commented Feb 1, 2024

@cubuspl42 @mallenexpensify this issue is now 4 weeks old and preventing us from maintaining WAQ. This should now be your highest priority. Please post below what your plan is to get a PR in review ASAP. Thanks!

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Feb 1, 2024
@mallenexpensify
Copy link
Contributor

@melvin-bot melvin-bot bot added the Overdue label Feb 5, 2024
Copy link

melvin-bot bot commented Feb 5, 2024

@cubuspl42, @mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@mallenexpensify mallenexpensify added Weekly KSv2 and removed Daily KSv2 labels Feb 7, 2024
@melvin-bot melvin-bot bot removed the Overdue label Feb 7, 2024
@mallenexpensify
Copy link
Contributor

Added to VIP Split project, bumping to weekly.

@melvin-bot melvin-bot bot added the Overdue label Feb 15, 2024
@lanitochka17
Copy link

Is this the same issue or need a new one?
Using Voip number invited contact to WS, the contact disappears but red dot shown near members

em.mp4

@mallenexpensify
Copy link
Contributor

Thx @lanitochka17 I'm unsure. @cubuspl42 what do you think? My hunch is...

  1. If it's related, if we fix this issue, then the one above wouldn't/shouldn't happen, right.
  2. If yes to Some initial fixes and code style updates #1, then we can either remember to double check the flow once done here or create a new issue and put it on hold, pending this one.

@melvin-bot melvin-bot bot removed the Overdue label Feb 18, 2024
@cubuspl42
Copy link
Contributor

Summing up the issue, as the post history is long:

In Expensify, users shouldn't be allowed to use VoIP phone numbers. In one part of the app, we (inconsistently) allow that. We classified it as a backend issue, and it's waiting to be picked up by an internal engineer.

@cubuspl42
Copy link
Contributor

About the concern raised by @lanitochka17:

I say let's create a new issue and put it on hold on this one. There are multiple differing aspects (different routes, different user-observable symptoms), and I think this will be less prone to being forgotten this way.

@lanitochka17
Copy link

@cubuspl42 Hello
#36806

@mallenexpensify
Copy link
Contributor

Thanks @lanitochka17 and @cubuspl42

@arielgreen arielgreen added the Hot Pick Ready for an engineer to pick up and run with label Feb 21, 2024
@melvin-bot melvin-bot bot added the Overdue label Feb 29, 2024
@mallenexpensify
Copy link
Contributor

@melvin-bot melvin-bot bot removed the Overdue label Mar 4, 2024
@tgolen tgolen self-assigned this Mar 4, 2024
@arielgreen arielgreen changed the title [$500] Room - Inconsistency in behaviour while adding VOIP number as contact via start chat&room [LOW] [Groups] [$500] Room - Inconsistency in behaviour while adding VOIP number as contact via start chat&room Mar 4, 2024
@tgolen tgolen added Reviewing Has a PR in review and removed Hot Pick Ready for an engineer to pick up and run with labels Mar 4, 2024
@tgolen
Copy link
Contributor

tgolen commented Mar 4, 2024

Daily Update

  • The Web-E PR has been created
  • It covers both the room invite and the task assignee flows

Next Steps

  • Wait for reviews
  • Respond to reviews
  • Merge and deploy

ETA

  • Merged tomorrow Mar 5
  • Deployed to production Mar 7

@tgolen
Copy link
Contributor

tgolen commented Mar 6, 2024

Daily Update

  • The Web-E PR failed QA and still wasn't working as expected

Next Steps

  • I'll create a new PR to fix the feature and get it to pass QA this time

ETA

  • PR created today Mar 6
  • PR merged tomorrow Mar 7
  • PR deployed to staging Mar 8

@tgolen
Copy link
Contributor

tgolen commented Mar 8, 2024

Daily Update

Next Steps

  • Close this issue

@tgolen tgolen closed this as completed Mar 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Internal Requires API changes or must be handled by Expensify staff Reviewing Has a PR in review Weekly KSv2
Projects
None yet
Development

No branches or pull requests

10 participants