App icon indicating copy to clipboard operation
App copied to clipboard

[$250] Submit Expense - Submit button appears briefly In expense details page

Open lanitochka17 opened this issue 1 year ago • 11 comments

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: 9.0.68-0 Reproducible in staging?: Y Reproducible in production?: Y If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A If this was caught during regression testing, add the test name, ID and link from TestRail: N/A Email or phone of affected tester (no customers): [email protected] Issue reported by: Applause - Internal Team

Action Performed:

  1. Go to https://staging.new.expensify.com/
  2. As an admin, create a workspace and add an employee
  3. As an admin, set delay submission to manually
  4. As an employee, go to the workspace chat and submit an expense
  5. As an employee, click on the submit button and then click on the expense preview quickly

Expected Result:

Submit button shouldn't appear

Actual Result:

Submit button appears and then disappears

Workaround:

Unknown

Platforms:

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

  • [ ] Android: Standalone
  • [ ] Android: HybridApp
  • [x] Android: mWeb Chrome
  • [ ] iOS: Standalone
  • [ ] iOS: HybridApp
  • [ ] iOS: mWeb Safari
  • [x] MacOS: Chrome / Safari
  • [ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/215f68cb-9289-4c62-b08f-7dd1ed90835e

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021864310032102390236
  • Upwork Job ID: 1864310032102390236
  • Last Price Increase: 2024-12-04
Issue OwnerCurrent Issue Owner: @ntdiary

lanitochka17 avatar Nov 28 '24 17:11 lanitochka17

Triggered auto assignment to @muttmuure (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

melvin-bot[bot] avatar Nov 28 '24 17:11 melvin-bot[bot]

@muttmuure Whoops! This issue is 2 days overdue. Let's get this updated quick!

melvin-bot[bot] avatar Dec 02 '24 10:12 melvin-bot[bot]

@muttmuure Eep! 4 days overdue now. Issues have feelings too...

melvin-bot[bot] avatar Dec 04 '24 09:12 melvin-bot[bot]

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

melvin-bot[bot] avatar Dec 04 '24 14:12 melvin-bot[bot]

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

melvin-bot[bot] avatar Dec 04 '24 14:12 melvin-bot[bot]

Edited by proposal-police: This proposal was edited at 2024-12-07 01:41:23 UTC.

Proposal

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

Submit Expense - Submit button appears briefly In expense details page

What is the root cause of that problem?

  • In the MoneyReportHeader component, there is a condition to display the "Submit" button. This condition uses the isOpenExpenseReport function, which checks if the report type is 'expense' and both stateNum and statusNum are 0.
  • When Submit Expense, the SubmitReport API is called, and optimisticData temporarily sets stateNum and statusNum to 2 (APPROVED, CLOSED), which hides the "Submit" button.
  • The root cause appears to be that the SubmitReport response returns a previousUpdateID that differs from the clientUpdateID in the request header. As a result, the app detects a conflict and resolves it by making a GetMissingOnyxMessages request with a range that predates the SubmitReport call with stateNum and statusNum is 0. As a result, the isOpenExpenseReport condition evaluates as true, and the Submit button reappears temporarily.
Look!

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

  • Modify the SubmitReport function:

    • Add a custom flag, isSubmitting: true to the optimisticData.
    • Add the finallyData here to reset the isSubmitting flag to false.
  • Update the ReportScreen component:

    • Include the isSubmitting field in the report
  • Update the MoneyReportHeader component:

    • Adjust the condition for shouldShowSubmitButton to check if isSubmitting is true. If so, the "Submit" button should not be displayed.
POC

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

N/A

What alternative solutions did you explore? (Optional)

Fix this issue on the backend by ensuring the previousUpdateID returned matches clientUpdateID in the request. If this is correct, the client will not detect a conflict, and the issue will be resolved.

linhvovan29546 avatar Dec 05 '24 12:12 linhvovan29546

curious why the stateNum and statusNum values returned by the GetMissingOnyxMessages are still 0. It seems like the SubmitReport request was already sent to the backend, there might be some issues with the backend logic? 🤔

ntdiary avatar Dec 06 '24 07:12 ntdiary

@ntdiary You are correct, the SubmitReport request was already sent to the backend. However, the GetMissingOnyxMessages request was called with the parameters updateIDFrom and updateIDTo, specifying a range that predates the SubmitReport call. (I’m not entirely sure I understand the exact logic in the backend for GetMissingOnyxMessages)

Details Screenshot 2024-12-06 at 7 32 24 PM

linhvovan29546 avatar Dec 06 '24 12:12 linhvovan29546

I also noticed that the previousUpdateID of SubmitReport seems unusual. It might be an issue with the backend logic, as you mentioned

@ntdiary You are correct, the SubmitReport request was already sent to the backend. However, the GetMissingOnyxMessages request was called with the parameters updateIDFrom and updateIDTo, specifying a range that predates the SubmitReport call. (I’m not entirely sure I understand the exact logic in the backend for GetMissingOnyxMessages)

Details

linhvovan29546 avatar Dec 06 '24 14:12 linhvovan29546

I also reproduced the issue using different steps without opening the Expense details page. The root cause appears to be that the SubmitReport response returns a previousUpdateID that differs from the clientUpdateID in the request header. As a result, the app detects a conflict and resolves it by making a GetMissingOnyxMessages request with a range that predates the SubmitReport call.

Details Screenshot 2024-12-07 at 8 11 03 AM Screenshot 2024-12-07 at 8 11 21 AM

linhvovan29546 avatar Dec 07 '24 01:12 linhvovan29546

Proposal

Update the root cause of the problem and include an alternative solution to fix it via the backend. Updated

linhvovan29546 avatar Dec 07 '24 01:12 linhvovan29546

@ntdiary, @muttmuure Whoops! This issue is 2 days overdue. Let's get this updated quick!

melvin-bot[bot] avatar Dec 09 '24 09:12 melvin-bot[bot]

Hi, @linhvovan29546, thank you very much for your detailed explanation! I'm still researching Onyx's update mechanism, at the moment, can only roughly feel that the issue might be on the backend, will provide an update tomorrow. :)

ntdiary avatar Dec 09 '24 15:12 ntdiary

Request Response
image image

SubmitReport

Request

reportID: 2079267310902332
managerAccountID: 18742492
reportActionID: 8221691778512079875
apiRequestType: write
pusherSocketID: 805486.11716452
shouldRetry: true
canCancel: true
authToken: AE79C4C24E4B82081618B8053D9EC9643D1D401F0A03F3835C5810E580882D4416A0FD94A88FE67E0C85ED40F53C0A220D268B23143E4EAF3DAF9F306EE0B0A94288CA5AC335986AC4133E0D8DB81E965F6A7500D770E4B046378AA65A30EF64A89572CEC1E800E6D05D99BEBE776552E404ED03ABB1A4044A5D9F8A18271763E93221C466D02E2B9FE385C5BFEDB62FC49C53EE3174CF8DB77ED3ECDF590402669289C1906D25CE794884D002B4C7107BEA0CE4665173DC704584F7E73D738629F3609F26984D438113E708F0F3D73731618E789E69E59CD10B8B718C7B0C9F5C87E38EC16B029AD5E7DCE4465C18AA73701C4D7F790B81C591D29B8005528FE2449FBCE240E6F943AA252D6A3F6FEE00D8D09D3C122C48FBD8E4989DBC4713E157964FB08F14F93BD1AFDFF50094039C06B1038655CB145F02DAC0B6D9A1492815CB6919C1A729D08D17B79EF3B0EB56BCE9EDB295C9E561E028F575ADB2F0
referer: ecash
platform: web
api_setCookie: false
email: [email protected]
isFromDevEnv: true
appversion: 9.0.71-2
clientUpdateID: 3326978644
Response

{
    "onyxData": [
        {
            "onyxMethod": "set",
            "key": "reportNextStep_2079267310902332",
            "value": {
                "message": [
                    {
                        "text": "Waiting for "
                    },
                    {
                        "text": "no.25",
                        "type": "strong",
                        "tooltipText": "[email protected] (click to copy)",
                        "clickToCopyText": "[email protected]"
                    },
                    {
                        "text": " to "
                    },
                    {
                        "text": "approve expense(s)"
                    }
                ],
                "title": "Next Step:",
                "requiresUserAction": true,
                "type": null,
                "showUndoSubmit": true,
                "showForMobile": true,
                "showForExpense": true,
                "nextReceiver": "",
                "icon": "hourglass"
            }
        },
        {
            "onyxMethod": "mergecollection",
            "key": "transactionViolations_",
            "value": {
                "transactionViolations_3007336961270018152": null
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "participants": {
                    "12136751": {
                        "notificationPreference": "hidden"
                    },
                    "12155382": {
                        "notificationPreference": "hidden"
                    },
                    "12395345": {
                        "notificationPreference": "hidden"
                    },
                    "12395346": {
                        "notificationPreference": "hidden"
                    },
                    "18742492": {
                        "notificationPreference": "hidden"
                    }
                }
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "lastReadTime": "2024-12-10 03:02:02.143"
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "chatType": "",
                "description": "",
                "lastActorAccountID": 18742492,
                "lastMessageText": "submitted $2.00",
                "lastVisibleActionCreated": "2024-12-10 03:02:02.138",
                "managerID": 18742492,
                "ownerAccountID": 18742492,
                "parentReportActionID": "6328382617190002208",
                "parentReportID": "5811615857794027",
                "policyID": "003E939C143712F8",
                "reportID": "2079267310902332",
                "reportName": "Expense Report #2079267310902332",
                "state": "SUBMITTED",
                "stateNum": 1,
                "statusNum": 0,
                "type": "expense",
                "visibility": null
            }
        },
        {
            "key": "reportActions_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "8221691778512079875": {
                    "actionName": "SUBMITTED",
                    "actorAccountID": 18742492,
                    "avatar": "https://d1wpcgnaa73g0y.cloudfront.net/ef748e6e3b8103dac22764fa4e96373dfd860116_128.jpeg",
                    "created": "2024-12-10 03:02:02.138",
                    "lastModified": "2024-12-10 03:02:02.138",
                    "message": [
                        {
                            "html": "submitted $2.00",
                            "text": "submitted $2.00",
                            "type": "COMMENT",
                            "whisperedTo": []
                        }
                    ],
                    "originalMessage": {
                        "amount": 200,
                        "cc": "",
                        "currency": "USD",
                        "hasExternalComment": false,
                        "html": "submitted $2.00",
                        "isNewDot": true,
                        "lastModified": "2024-12-10 03:02:02.138",
                        "message": "",
                        "to": "[email protected]",
                        "workflow": "ADVANCED"
                    },
                    "person": [
                        {
                            "style": "strong",
                            "text": "no.25",
                            "type": "TEXT"
                        }
                    ],
                    "reportActionID": "8221691778512079875",
                    "shouldShow": true
                }
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "actionName": "REPORTPREVIEW",
                    "actorAccountID": 18742492,
                    "avatar": "https://d1wpcgnaa73g0y.cloudfront.net/ef748e6e3b8103dac22764fa4e96373dfd860116_128.jpeg",
                    "childCanHold": true,
                    "childCanUnhold": false,
                    "childCommenterCount": 0,
                    "childLastActorAccountID": 18742492,
                    "childLastMoneyRequestComment": "",
                    "childLastReceiptTransactionIDs": "",
                    "childLastVisibleActionCreated": "",
                    "childManagerAccountID": 18742492,
                    "childMoneyRequestCount": 1,
                    "childOldestFourAccountIDs": "",
                    "childOwnerAccountID": 18742492,
                    "childRecentReceiptTransactionIDs": [],
                    "childReportID": 2079267310902332,
                    "childReportName": "Expense Report #2079267310902332",
                    "childReportNotificationPreference": "hidden",
                    "childStateNum": 1,
                    "childStatusNum": 0,
                    "childType": "expense",
                    "childVisibleActionCount": 0,
                    "created": "2024-12-10 02:55:52.177",
                    "lastModified": "2024-12-10 02:55:52.177",
                    "message": [
                        {
                            "html": "No.25's Workspace owes $2.00",
                            "text": "No.25's Workspace owes $2.00",
                            "type": "COMMENT",
                            "whisperedTo": []
                        }
                    ],
                    "originalMessage": {
                        "isNewDot": true,
                        "lastModified": "2024-12-10 02:55:52.177",
                        "linkedReportID": "2079267310902332"
                    },
                    "person": [
                        {
                            "style": "strong",
                            "text": "no.25",
                            "type": "TEXT"
                        }
                    ],
                    "reportActionID": "6328382617190002208",
                    "shouldShow": true
                }
            }
        },
        {
            "key": "personalDetailsList",
            "onyxMethod": "merge",
            "value": {
                "18742492": {
                    "accountID": 18742492,
                    "avatar": "https://d1wpcgnaa73g0y.cloudfront.net/ef748e6e3b8103dac22764fa4e96373dfd860116_128.jpeg",
                    "displayName": "no.25",
                    "firstName": "no.25",
                    "lastName": "",
                    "login": "[email protected]",
                    "phoneNumber": "",
                    "pronouns": "__predefined_heHimHis",
                    "status": {
                        "clearAfter": "2024-12-10 23:59:59",
                        "emojiCode": "💬",
                        "text": "123"
                    },
                    "timezone": {
                        "automatic": true,
                        "selected": "Asia/Shanghai"
                    },
                    "validated": true
                }
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "statusNum": 1
            }
        },
        {
            "key": "report_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "participants": {
                    "18742492": {
                        "notificationPreference": "always"
                    }
                }
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "shouldShowPushNotification": true,
            "value": {
                "4353954628105161485": {
                    "actionName": "ADDCOMMENT",
                    "actorAccountID": 11665625,
                    "avatar": "https://d2k5nsl2zxldvw.cloudfront.net/images/expensify-iconmark-avatar-square.png",
                    "created": "2024-12-10 03:02:02.145",
                    "lastModified": "2024-12-10 03:02:02.145",
                    "message": [
                        {
                            "html": "<h1>Please review [email protected]'s report</h1>Heads up! You need to approve <a href=\"https://new.expensify.com/r/2079267310902332\" rel=\"noreferrer noopener\">Expense Report #2079267310902332</a> 👀",
                            "text": "Please review [email protected]'s report\nHeads up! You need to approve Expense Report #2079267310902332 👀",
                            "type": "COMMENT",
                            "whisperedTo": [
                                18742492
                            ]
                        }
                    ],
                    "originalMessage": {
                        "html": "<h1>Please review [email protected]'s report</h1>Heads up! You need to approve <a href=\"https://new.expensify.com/r/2079267310902332\" rel=\"noreferrer noopener\">Expense Report #2079267310902332</a> 👀",
                        "isNewDot": true,
                        "lastModified": "2024-12-10 03:02:02.145",
                        "whisperedTo": [
                            18742492
                        ]
                    },
                    "person": [
                        {
                            "style": "strong",
                            "text": "Expensify",
                            "type": "TEXT"
                        }
                    ],
                    "reportActionID": "4353954628105161485",
                    "shouldShow": true,
                    "whisperedToAccountIDs": [
                        18742492
                    ]
                }
            }
        },
        {
            "key": "personalDetailsList",
            "onyxMethod": "merge",
            "value": {
                "11665625": {
                    "accountID": 11665625,
                    "avatar": "https://d2k5nsl2zxldvw.cloudfront.net/images/expensify-iconmark-avatar-square.png",
                    "displayName": "Expensify",
                    "firstName": "",
                    "lastName": "Expensify",
                    "login": "[email protected]",
                    "phoneNumber": "",
                    "pronouns": "",
                    "status": null,
                    "timezone": {
                        "automatic": true,
                        "selected": "Europe/Madrid"
                    },
                    "validated": true
                }
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childCanHold": true,
                    "childCanUnhold": false,
                    "childCommenterCount": 0,
                    "childLastActorAccountID": 18742492,
                    "childLastMoneyRequestComment": "",
                    "childLastReceiptTransactionIDs": "",
                    "childLastVisibleActionCreated": "",
                    "childManagerAccountID": 18742492,
                    "childMoneyRequestCount": 1,
                    "childOldestFourAccountIDs": "",
                    "childOwnerAccountID": 18742492,
                    "childRecentReceiptTransactionIDs": [],
                    "childReportID": 2079267310902332,
                    "childReportName": "Expense Report #2079267310902332",
                    "childReportNotificationPreference": "hidden",
                    "childStateNum": 1,
                    "childStatusNum": 1,
                    "childType": "expense",
                    "childVisibleActionCount": 0,
                    "message": [
                        {
                            "html": "No.25's Workspace owes $2.00",
                            "text": "No.25's Workspace owes $2.00",
                            "type": "COMMENT",
                            "whisperedTo": []
                        }
                    ],
                    "originalMessage": {
                        "isNewDot": true,
                        "lastModified": "2024-12-10 02:55:52.177",
                        "linkedReportID": "2079267310902332"
                    }
                }
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "avatarUrl": null,
                "chatReportID": "5811615857794027",
                "chatType": "",
                "currency": "USD",
                "description": "",
                "errorFields": {
                    "export": null,
                    "notFound": null
                },
                "fieldList": null,
                "hasOutstandingChildRequest": false,
                "hasOutstandingChildTask": false,
                "hasParentAccess": true,
                "invoiceReceiver": null,
                "iouReportID": null,
                "isCancelledIOU": false,
                "isDeletedParentAction": null,
                "isOwnPolicyExpenseChat": false,
                "isPinned": false,
                "isWaitingOnBankAccount": false,
                "lastActionType": "SUBMITTED",
                "lastActorAccountID": "18742492",
                "lastMentionedTime": null,
                "lastMessageHtml": "submitted this report",
                "lastMessageText": "submitted this report",
                "lastReadSequenceNumber": 0,
                "lastReadTime": "2024-12-10 03:02:02.143",
                "lastVisibleActionCreated": "2024-12-10 03:02:02.138",
                "lastVisibleActionLastModified": "2024-12-10 03:02:02.138",
                "managerID": 18742492,
                "nonReimbursableTotal": 0,
                "oldPolicyName": "",
                "ownerAccountID": 18742492,
                "parentReportActionID": "6328382617190002208",
                "parentReportID": "5811615857794027",
                "participants": {
                    "12136751": {
                        "notificationPreference": "hidden"
                    },
                    "12155382": {
                        "notificationPreference": "hidden"
                    },
                    "12395345": {
                        "notificationPreference": "hidden"
                    },
                    "12395346": {
                        "notificationPreference": "hidden"
                    },
                    "18742492": {
                        "notificationPreference": "hidden"
                    }
                },
                "permissions": [],
                "policyAvatar": null,
                "policyID": "003E939C143712F8",
                "policyName": null,
                "private_isArchived": "",
                "reportID": "2079267310902332",
                "reportName": "Expense Report #2079267310902332",
                "stateNum": 1,
                "statusNum": 1,
                "total": -200,
                "tripData": null,
                "type": "expense",
                "unheldNonReimbursableTotal": 0,
                "unheldTotal": -200,
                "visibility": null,
                "welcomeMessage": "",
                "writeCapability": "all"
            }
        },
        {
            "key": "reportNameValuePairs_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "type": "expense"
            }
        },
        {
            "key": "report_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "hasOutstandingChildRequest": true
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childCanHold": true,
                    "childCanUnhold": false,
                    "childCommenterCount": 0,
                    "childLastActorAccountID": 18742492,
                    "childLastMoneyRequestComment": "",
                    "childLastReceiptTransactionIDs": "",
                    "childLastVisibleActionCreated": "",
                    "childManagerAccountID": 18742492,
                    "childMoneyRequestCount": 1,
                    "childOldestFourAccountIDs": "",
                    "childOwnerAccountID": 18742492,
                    "childRecentReceiptTransactionIDs": [],
                    "childReportID": 2079267310902332,
                    "childReportName": "Expense Report #2079267310902332",
                    "childReportNotificationPreference": "hidden",
                    "childStateNum": 1,
                    "childStatusNum": 1,
                    "childType": "expense",
                    "childVisibleActionCount": 0,
                    "message": [
                        {
                            "html": "No.25's Workspace owes $2.00",
                            "text": "No.25's Workspace owes $2.00",
                            "type": "COMMENT",
                            "whisperedTo": []
                        }
                    ],
                    "originalMessage": {
                        "isNewDot": true,
                        "lastModified": "2024-12-10 02:55:52.177",
                        "linkedReportID": "2079267310902332"
                    }
                }
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childMoneyRequestCount": 1,
                    "reportActionID": "6328382617190002208"
                }
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "chatType": "",
                "lastActorAccountID": 18742492,
                "lastMessageText": "",
                "lastVisibleActionCreated": "2024-12-10 03:02:02.138",
                "managerID": 18742492,
                "nonReimbursableTotal": 0,
                "ownerAccountID": 18742492,
                "parentReportActionID": "6328382617190002208",
                "parentReportID": "5811615857794027",
                "policyID": "003E939C143712F8",
                "reportID": "2079267310902332",
                "reportName": "Expense Report #2079267310902332",
                "stateNum": 1,
                "statusNum": 1,
                "total": "-200",
                "type": "expense",
                "visibility": null
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childCanHold": true,
                    "childCanUnhold": false,
                    "childCommenterCount": 0,
                    "childLastActorAccountID": 18742492,
                    "childLastMoneyRequestComment": "",
                    "childLastReceiptTransactionIDs": "",
                    "childLastVisibleActionCreated": "",
                    "childManagerAccountID": 18742492,
                    "childMoneyRequestCount": 1,
                    "childOldestFourAccountIDs": "",
                    "childOwnerAccountID": 18742492,
                    "childRecentReceiptTransactionIDs": [],
                    "childReportID": 2079267310902332,
                    "childReportName": "Expense Report #2079267310902332",
                    "childReportNotificationPreference": "hidden",
                    "childStateNum": 1,
                    "childStatusNum": 1,
                    "childType": "expense",
                    "childVisibleActionCount": 0,
                    "message": [
                        {
                            "html": "No.25's Workspace owes $2.00",
                            "text": "No.25's Workspace owes $2.00",
                            "type": "COMMENT",
                            "whisperedTo": []
                        }
                    ],
                    "originalMessage": {
                        "isNewDot": true,
                        "lastModified": "2024-12-10 02:55:52.177",
                        "linkedReportID": "2079267310902332"
                    }
                }
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childMoneyRequestCount": 1,
                    "reportActionID": "6328382617190002208"
                }
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "chatType": "",
                "lastActorAccountID": 18742492,
                "lastMessageText": "",
                "lastVisibleActionCreated": "2024-12-10 03:02:02.138",
                "managerID": 18742492,
                "nonReimbursableTotal": 0,
                "ownerAccountID": 18742492,
                "parentReportActionID": "6328382617190002208",
                "parentReportID": "5811615857794027",
                "policyID": "003E939C143712F8",
                "reportID": "2079267310902332",
                "reportName": "Expense Report #2079267310902332",
                "stateNum": 1,
                "statusNum": 1,
                "total": "-200",
                "type": "expense",
                "visibility": null
            }
        },
        {
            "key": "userMetadata",
            "onyxMethod": "set",
            "value": {
                "accountID": 18742492,
                "email": "[email protected]",
                "freeTrial": false,
                "planType": "corporate",
                "role": "admin",
                "tryNewDotDismissed": true
            }
        },
        {
            "key": "transactionViolations_",
            "onyxMethod": "mergecollection",
            "value": {
                "transactionViolations_3007336961270018152": null
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "lastActorAccountID": 18742492,
                "lastMentionedTime": null,
                "lastMessageText": "submitted $2.00",
                "lastReadTime": "2024-12-10 03:02:02.138",
                "lastVisibleActionCreated": "2024-12-10 03:02:02.138",
                "maxSequenceNumber": 2,
                "reportID": "2079267310902332"
            }
        },
        {
            "key": "reportActions_2079267310902332",
            "onyxMethod": "merge",
            "shouldNotify": false,
            "value": {
                "8221691778512079875": {
                    "actionName": "SUBMITTED",
                    "actorAccountID": 18742492,
                    "automatic": false,
                    "avatar": "https://d1wpcgnaa73g0y.cloudfront.net/ef748e6e3b8103dac22764fa4e96373dfd860116_128.jpeg",
                    "created": "2024-12-10 03:02:02.138",
                    "isAttachment": false,
                    "lastModified": "2024-12-10 03:02:02.138",
                    "message": [
                        {
                            "style": "normal",
                            "text": "submitted $2.00",
                            "type": "TEXT"
                        }
                    ],
                    "originalMessage": {
                        "amount": 200,
                        "cc": "",
                        "currency": "USD",
                        "hasExternalComment": false,
                        "html": "submitted $2.00",
                        "isNewDot": true,
                        "lastModified": "2024-12-10 03:02:02.138",
                        "message": "",
                        "to": "[email protected]",
                        "workflow": "ADVANCED"
                    },
                    "person": [
                        {
                            "style": "strong",
                            "text": "no.25",
                            "type": "TEXT"
                        }
                    ],
                    "reportActionID": "8221691778512079875",
                    "reportActionTimestamp": 1733799722138,
                    "sequenceNumber": 2,
                    "shouldShow": true,
                    "timestamp": 1733799722,
                    "whisperedToAccountIDs": []
                }
            }
        }
    ],
    "jsonCode": 200,
    "requestID": "8ef9fe6688229657-SJC",
    "previousUpdateID": 3327030705,
    "lastUpdateID": 3327030869
}

GetMissingOnyxMessages

Request

updateIDFrom: 3326978644
updateIDTo: 3327030705
apiRequestType: makeRequestWithSideEffects
authToken: AE79C4C24E4B82081618B8053D9EC9643D1D401F0A03F3835C5810E580882D4416A0FD94A88FE67E0C85ED40F53C0A220D268B23143E4EAF3DAF9F306EE0B0A94288CA5AC335986AC4133E0D8DB81E965F6A7500D770E4B046378AA65A30EF64A89572CEC1E800E6D05D99BEBE776552E404ED03ABB1A4044A5D9F8A18271763E93221C466D02E2B9FE385C5BFEDB62FC49C53EE3174CF8DB77ED3ECDF590402669289C1906D25CE794884D002B4C7107BEA0CE4665173DC704584F7E73D738629F3609F26984D438113E708F0F3D73731618E789E69E59CD10B8B718C7B0C9F5C87E38EC16B029AD5E7DCE4465C18AA73701C4D7F790B81C591D29B8005528FE2449FBCE240E6F943AA252D6A3F6FEE00D8D09D3C122C48FBD8E4989DBC4713E157964FB08F14F93BD1AFDFF50094039C06B1038655CB145F02DAC0B6D9A1492815CB6919C1A729D08D17B79EF3B0EB56BCE9EDB295C9E561E028F575ADB2F0
referer: ecash
platform: web
api_setCookie: false
email: [email protected]
isFromDevEnv: true
appversion: 9.0.71-2
clientUpdateID: 3326978644
Response

{
    "onyxData": [
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childCanHold": true,
                    "childCanUnhold": false,
                    "childCommenterCount": 0,
                    "childLastActorAccountID": 18742492,
                    "childLastMoneyRequestComment": "",
                    "childLastReceiptTransactionIDs": "",
                    "childLastVisibleActionCreated": "",
                    "childManagerAccountID": 18742492,
                    "childMoneyRequestCount": 1,
                    "childOldestFourAccountIDs": "",
                    "childOwnerAccountID": 18742492,
                    "childRecentReceiptTransactionIDs": [],
                    "childReportID": 2079267310902332,
                    "childReportName": "Expense Report #2079267310902332",
                    "childReportNotificationPreference": "hidden",
                    "childStateNum": 0,
                    "childStatusNum": 0,
                    "childType": "expense",
                    "childVisibleActionCount": 0,
                    "message": [
                        {
                            "html": "No.25's Workspace owes $2.00",
                            "text": "No.25's Workspace owes $2.00",
                            "type": "COMMENT",
                            "whisperedTo": []
                        }
                    ],
                    "originalMessage": {
                        "isNewDot": true,
                        "lastModified": "2024-12-10 02:55:52.177",
                        "linkedReportID": "2079267310902332"
                    }
                }
            }
        },
        {
            "key": "reportActions_5811615857794027",
            "onyxMethod": "merge",
            "value": {
                "6328382617190002208": {
                    "childMoneyRequestCount": 1,
                    "reportActionID": "6328382617190002208"
                }
            }
        },
        {
            "key": "report_2079267310902332",
            "onyxMethod": "merge",
            "value": {
                "chatType": "",
                "lastActorAccountID": 18742492,
                "lastMessageText": "",
                "lastVisibleActionCreated": "2024-12-10 02:55:52.174",
                "managerID": 18742492,
                "nonReimbursableTotal": 0,
                "ownerAccountID": 18742492,
                "parentReportActionID": "6328382617190002208",
                "parentReportID": "5811615857794027",
                "policyID": "003E939C143712F8",
                "reportID": "2079267310902332",
                "reportName": "Expense Report #2079267310902332",
                "stateNum": 0,
                "statusNum": 0,
                "total": "-200",
                "type": "expense",
                "visibility": null
            }
        },
        {
            "key": "userMetadata",
            "onyxMethod": "set",
            "value": {
                "accountID": 18742492,
                "email": "[email protected]",
                "freeTrial": false,
                "planType": "corporate",
                "role": "admin",
                "tryNewDotDismissed": true
            }
        }
    ],
    "lastUpdateID": "3327030705",
    "previousUpdateID": "3326978644",
    "jsonCode": 200,
    "requestID": "8ef9fe705f68f967-SJC"
}

Hi, @muttmuure , can we assign a backend engineer? It would be better to check in the backend, for the SubmitReport API, why the previousUpdateID in the response doesn't match the clientUpdateID in the request, there shouldn't be any other requests interfering, and SubmitReport response already includes all the latest Onyx data returned by the subsequent GetMissingOnyxMessages. 🤔

ntdiary avatar Dec 10 '24 03:12 ntdiary

yep @ntdiary you are right. Unfortunately they have applied a FE workaround here to fix it which I don't feel it is correct but you might not be able to reproduce it anymore.

FitseTLT avatar Dec 10 '24 15:12 FitseTLT

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

melvin-bot[bot] avatar Dec 11 '24 16:12 melvin-bot[bot]

@ntdiary @muttmuure 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!

melvin-bot[bot] avatar Dec 12 '24 09:12 melvin-bot[bot]

yep @ntdiary you are right. Unfortunately they have applied a FE workaround here to fix it which I don't feel it is correct but you might not be able to reproduce it anymore.

Interesting. Maybe @rafecolton has already checked the backend logic, and think adding SUBMIT_REPORT to requestsToIgnoreLastUpdateID is sufficient. :)

ntdiary avatar Dec 12 '24 09:12 ntdiary

@ntdiary, @muttmuure Whoops! This issue is 2 days overdue. Let's get this updated quick!

melvin-bot[bot] avatar Dec 16 '24 09:12 melvin-bot[bot]

Maybe @rafecolton has already checked the backend logic, and think adding SUBMIT_REPORT to requestsToIgnoreLastUpdateID is sufficient. :)

I did not check this

rafecolton avatar Dec 17 '24 01:12 rafecolton

What needs to happen here? Does the FE PR need to be reverted? Do we need to recruit somebody to investigate a BE change the FE change masked?

rafecolton avatar Dec 17 '24 01:12 rafecolton

Does the FE PR need to be reverted? Do we need to recruit somebody to investigate a BE change the FE change masked?

It sounds like the latter. Nothing has been merged yet

muttmuure avatar Dec 17 '24 20:12 muttmuure

I've added the Internal label and added to Hot Picks

muttmuure avatar Dec 17 '24 20:12 muttmuure

Thanks Matt!

rafecolton avatar Dec 17 '24 23:12 rafecolton

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

melvin-bot[bot] avatar Dec 18 '24 16:12 melvin-bot[bot]

Issue not reproducible during KI retests. (First week)

mvtglobally avatar Dec 21 '24 02:12 mvtglobally

@ntdiary, @muttmuure Eep! 4 days overdue now. Issues have feelings too...

melvin-bot[bot] avatar Dec 23 '24 09:12 melvin-bot[bot]

Issue not reproducible during KI retests. (First week)

This issue has been fixed by another PR (a FE workaround), but it still requires an internal engineer to check the backend logic. I have provided clues in the previous comment

ntdiary avatar Dec 24 '24 10:12 ntdiary

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

melvin-bot[bot] avatar Dec 25 '24 16:12 melvin-bot[bot]

@ntdiary @muttmuure this issue is now 4 weeks old, please consider:

  • Finding a contributor to fix the bug
  • Closing the issue if BZ has been unable to add the issue to a VIP or Wave project
  • If you have any questions, don't hesitate to start a discussion in #expensify-open-source

Thanks!

melvin-bot[bot] avatar Dec 26 '24 09:12 melvin-bot[bot]