[No QA] [Test] Pin react-native-onyx to #806 — Failed to write blobs classification + instrumentation#95586
Draft
elirangoshen wants to merge 1 commit into
Conversation
Test-only branch: pins react-native-onyx to callstack-internal/react-native-onyx@9b9aba70 (eliran/2397-classify-idb-blob-write-errors) so the "Failed to write blobs" classification fix + failing-write instrumentation can be exercised in the App. Not for merge. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
|
|
42 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation of Change
Companion / verification PR for react-native-onyx PR Expensify/react-native-onyx#806. It pins
react-native-onyxto that PR's HEAD viagit+httpsso E/App CI and manual testing exercise the change before the Onyx PR is merged and published.The Onyx change addresses
DataError: Failed to write blobs, which has grown from 1.9% to ~93% of all Onyx web storage errors (#87871). Chromium externalizes any IndexedDB value >64 KB into a blob file; when that write fails the error was unclassified, so Onyx retried it 5× (prod shows ~99.7% futile) and logged ~6× per failure before silently dropping the write. The Onyx PR classifies it as a newUNRECOVERABLEclass (skip quietly — no retry/throw/eviction) and adds a log-only diagnostic that reports the failing key(s) + approximate serialized size, so we can confirm the >64 KB trigger and identify the culprit keys.Pin:
"react-native-onyx": "git+https://github.com/callstack-internal/react-native-onyx.git#9b9aba708a408af226563deff6add1e6035e9ea0"."react-native-onyx": "3.0.xx") — at which point this becomes the bump PR.Fixed Issues
$ #87871
PROPOSAL:
Tests
This is a library-only bump with no user-facing UI change; the goal is to confirm no regressions in normal Onyx read/write behavior and that the new classification behaves correctly. The underlying Chromium blob-write failure can't be reproduced on demand, so:
new DOMException('Failed to write blobs (IOError)', 'DataError')and confirm:Storage operation skipped retry; unrecoverable errors cannot be recovered by retrying …log line appears, followed by thepairs: … over64KB: … largest: […]payload summary,Attempted to set invalid data …throw, no eviction, and noIDB heal …reopen logs for this error,Offline tests
QA Steps
Same as tests. No user-facing behavior changes; this is an Onyx library bump. (Title should include "[No QA]" if QA is not required.)
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, 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
iOS: mWeb Safari
MacOS: Chrome / Safari