Skip to content

Kunal boundary - test#119

Open
kunalsentry wants to merge 6 commits intomasterfrom
kunal-boundary
Open

Kunal boundary - test#119
kunalsentry wants to merge 6 commits intomasterfrom
kunal-boundary

Conversation

@kunalsentry
Copy link

No description provided.

kunalsentry and others added 3 commits March 23, 2026 10:59
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a new ErrorBoundaryProduct card at the top of the product list
(rendered after products load) with an error icon, title, and description.
Pressing "Add to cart" throws during render so Sentry.ErrorBoundary
catches it and displays a fallback component.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…llback

- Create SentryProvider component housing Sentry.init and a global
  ErrorUtils handler that intercepts uncaught JS errors before Sentry,
  captures them manually, and emits GLOBAL_UNHANDLED_ERROR to show a
  full-screen fallback UI without locking the app on a single fatal error
- Comment out Sentry.init in App.tsx; wrap app tree in SentryProvider
- Remove local Sentry.ErrorBoundary from ErrorBoundaryProduct so errors
  propagate up to SentryProvider's boundary

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…pper

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
refreshing={toolData === null}
data={toolData}
contentContainerStyle={styles.productListContainer}
ListHeaderComponent={toolData ? <ErrorBoundaryProduct /> : null}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The ErrorBoundaryProduct component is rendered without a React Error Boundary, causing an unhandled error that will crash the app when the 'Add to cart' button is pressed.
Severity: CRITICAL

Suggested Fix

Wrap the ErrorBoundaryProduct component instance in src/screens/HomeScreen.tsx with <Sentry.ErrorBoundary> and provide a fallback UI component to gracefully handle the intentional error, preventing the application from crashing.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: src/screens/HomeScreen.tsx#L112

Potential issue: The `ErrorBoundaryProduct` component is designed to throw an error when
the user presses the "Add to cart" button. However, this component is rendered as a
`ListHeaderComponent` in the `FlatList` without being wrapped in a React Error Boundary.
When the button is pressed, the resulting unhandled render error will propagate to the
React root and crash the entire application. The existing `Sentry.wrap(App)` is for
performance tracing and does not catch render errors, and a `SentryProvider` component
with a proper error boundary exists but is not used.

Did we get this right? 👍 / 👎 to inform future reviews.

kunalsentry and others added 2 commits March 24, 2026 10:45
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…duct to throw directly on press

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment on lines +11 to +13
onPress={() => {
throw new Error('Error boundary triggered from error product card');
}}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The error thrown in the onPress handler is not caught by Sentry.ErrorBoundary, as error boundaries do not capture errors from event handlers, causing an unhandled exception.
Severity: CRITICAL

Suggested Fix

To correctly handle the error and prevent an app crash, wrap the code inside the onPress event handler with a try/catch block. This will allow you to catch the exception and manage the application state or UI accordingly, without relying on the React Error Boundary for event-driven errors.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: src/components/ErrorBoundaryProduct.tsx#L11-L13

Potential issue: The error thrown within the `onPress` event handler in
`ErrorBoundaryProduct.tsx` will not be caught by the `Sentry.ErrorBoundary` component.
React error boundaries only capture errors that occur during the render phase, in
lifecycle methods, or in constructors; they do not handle errors from event handlers. As
a result, interacting with this component will cause an unhandled JavaScript exception,
leading to a potential app crash in production instead of displaying the intended
fallback UI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant