Fix lost/duplicated requests in PersistedRequests (Issues 2, 3, 4, 5) + deploy blocker fix#85920
Conversation
…ssues 2, 3, 4, 5)" This reverts commit 1c8a4e6.
|
@thesahindia Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 567cbdd656
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
No product review needed |
Explanation of Change
This PR re-lands the sequential queue fixes from #84622 (which was reverted due to deploy blockers #85671, #85669, #85673, #85708, #85755) with additional fixes for the file upload regression.
Original fixes (Issues 2, 3, 4, 5):
API.write()returnedPromise.resolve()immediately — nothing in the write pipeline was awaited. Fix:save()returnsPromise<void>,push()returns persistence promise,processRequest()awaits it.processNextRequest()androllbackOngoingRequest()didn't persist changes to disk. Fix: both now useOnyx.multiSet()to atomically persist queue + ongoing request.knownRequestIDsmerge.Fixed Issues
$ #80759
PROPOSAL:
Tests
DataCloneErrorOffline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
Nagranie.z.ekranu.2026-03-19.o.12.04.39.mov
Nagranie.z.ekranu.2026-03-19.o.11.58.50.mov
Nagranie.z.ekranu.2026-03-19.o.11.57.40.mov