Repository navigation
Bump Onyx version to 3.0.120 - #103208
Bump Onyx version to 3.0.120#103208sosek108 wants to merge 2 commits into
Conversation
|
|
|
QA for the Expensify/react-native-onyx#854 changes. All tests run on Chrome desktop with DevTools open. They simulate a broken IndexedDB from the Console, and a reload undoes the patch. Break IndexedDB: window.__origTx = IDBDatabase.prototype.transaction;
IDBDatabase.prototype.transaction = function () {
throw new DOMException('Internal error.', 'UnknownError');
};Restore IndexedDB: IDBDatabase.prototype.transaction = window.__origTx;Test 1: IndexedDB keeps failing → the app switches to memory-only storage
Test 2: a one-off failure still recovers and stays on IndexedDB
Test 3: two tabs both switch to memory (known issue)
The other new path, where IndexedDB fails on the very first read at startup, can't be triggered from the Console because the app reads storage before you can run anything. The unit tests in |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safaritest1.movtest2.mov |
Explanation of Change
Pins
react-native-onyxto 3.0.120. Once #854 is merged and published, this PR switches to the npm version and becomes the bump PR.Follow-up to Expensify/react-native-onyx#853. When IndexedDB stays broken after Onyx reopens the connection 3 times, Onyx now moves the session to in-memory storage (
MemoryOnlyProvider) instead of sending every read and write to a dead database. It also moves to memory at init when the firstgetAllfails with a fatal error. The app keeps working for the session. Nothing persists across reloads, but persistence was already broken for these users.Fixed Issues
$ #102272
PROPOSAL: #102272 (comment)
Tests
heal budget exhaustedalert followed byFalling back to only using cache.Offline tests
QA Steps
The failure only reproduces on a browser whose IndexedDB is broken, so QA is a regression pass:
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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
Nagranie.z.ekranu.2026-10-8.o.10.33.15.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
Nagranie.z.ekranu.2026-10-8.o.11.59.18.mov
Nagranie.z.ekranu.2026-10-29.o.09.59.03.mp4