Stringify thrown errors in logAlert - #827
Open
roryabraham wants to merge 2 commits into
Open
Conversation
Raw Error interpolation becomes [object Object] in some runtimes. Use message/String so merge and subscriber failures stay readable.
40 tasks
This comment was marked as resolved.
This comment was marked as resolved.
error.message is empty for new TypeError() and drops TypeError / custom names. toString() matches the old interpolation.
This comment has been minimized.
This comment has been minimized.
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
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". |
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.
Details
Split from #802. This PR only stringifies thrown values before they are interpolated into
Logger.logAlert.Raw
Errorobjects become[object Object]when interpolated in some runtimes, which makes merge and subscriber-callback failures unreadable. This change:formatCaughtError()inlib/OnyxUtils.tsand uses it at the three existingkeysChanged/keyChangedlogAlertsites that currently interpolate: ${error}.lib/Onyx.tsmerge catch, logserror.messagewhen the thrown value is anError, otherwiseString(error).lib/OnyxConnectionManager.tsfireCallbackscatch, usesString(error).No eslint changes, no type changes, and no
Onyx.updatehandler hoist.Related Issues
For #802
Linked E/App PR
Expensify/App#99242
Automated Tests
No new tests. This is logging-only: the catch paths already swallow the error and continue. The change only affects the string passed to
logAlert.Manual Tests
react-native-onyxto this PR HEAD and install dependencies.npm run web).Author Checklist
### Related Issuessection above### Linked E/App PRsection above, and verified this change against it (E/App CI passed and manual testing completed)TestssectiontoggleReportand notonIconClick)myBool && <MyComponent />.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)Avataris modified, I verified thatAvataris working as expected in all cases)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