Skip to content

Conversation

@morgan-wowk
Copy link

@morgan-wowk morgan-wowk commented Jan 26, 2026

Description

Added a new ErrorBoundary component that wraps the entire application to catch and handle React errors. The component integrates with Bugsnag for error reporting when enabled, with a fallback option for when Bugsnag is not available. The implementation includes a custom error handler UI component and has been integrated at the root level of the application.

Type of Change

  • New feature
  • Improvement

Checklist

  • I have tested this does not break current pipelines / runs functionality
  • I have tested the changes on staging

Test Instructions

  1. Verify the application loads correctly with the new error boundary in place
  2. Test error handling by intentionally causing a component error
  3. Confirm errors are properly reported to Bugsnag when configured

Copy link
Author

morgan-wowk commented Jan 26, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_unified_errorhandler_component_add_errorhandler_to_unify_error_handling_logic_for_both_react_error_boundaries_and_router_errors._automatically_reports_errors_to_bugsnag_and_provides_consistent_error_display_with_retry_g branch from 0fa7ae0 to b8f873e Compare January 26, 2026 21:02
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch 2 times, most recently from 6b11c41 to fe1d7b6 Compare January 26, 2026 21:07
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_unified_errorhandler_component_add_errorhandler_to_unify_error_handling_logic_for_both_react_error_boundaries_and_router_errors._automatically_reports_errors_to_bugsnag_and_provides_consistent_error_display_with_retry_g branch 2 times, most recently from 2f5f3a3 to bedeb6d Compare January 26, 2026 21:10
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from fe1d7b6 to 8a682a5 Compare January 26, 2026 21:10
@morgan-wowk morgan-wowk marked this pull request as ready for review January 26, 2026 21:13
@morgan-wowk morgan-wowk requested a review from a team as a code owner January 26, 2026 21:13
Comment on lines 43 to 45
// Fallback: no error boundary (just render children)
// In the future, this could check for other error reporting services
return <>{children}</>;
Copy link
Collaborator

Choose a reason for hiding this comment

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

We can use ErrorBoundary from react-error-boundary package (which is already in). You may read more in https://kentcdodds.com/blog/use-react-error-boundary-to-handle-errors-in-react or start from https://www.npmjs.com/package/react-error-boundary

Copy link
Author

Choose a reason for hiding this comment

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

Implemented.

@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 8a682a5 to f544686 Compare January 28, 2026 18:33
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_unified_errorhandler_component_add_errorhandler_to_unify_error_handling_logic_for_both_react_error_boundaries_and_router_errors._automatically_reports_errors_to_bugsnag_and_provides_consistent_error_display_with_retry_g branch from bedeb6d to 2b4b0cd Compare January 28, 2026 18:33
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from f544686 to 5d61c09 Compare January 28, 2026 18:48
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_unified_errorhandler_component_add_errorhandler_to_unify_error_handling_logic_for_both_react_error_boundaries_and_router_errors._automatically_reports_errors_to_bugsnag_and_provides_consistent_error_display_with_retry_g branch from 2b4b0cd to 7e226d9 Compare January 28, 2026 18:48
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 5d61c09 to 9dafa4a Compare January 28, 2026 19:21
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_unified_errorhandler_component_add_errorhandler_to_unify_error_handling_logic_for_both_react_error_boundaries_and_router_errors._automatically_reports_errors_to_bugsnag_and_provides_consistent_error_display_with_retry_g branch from 7e226d9 to 9322f42 Compare January 28, 2026 19:21
Copy link
Author

Note: I am actively working on implementing a refactor to simplify the contents of this PR

@morgan-wowk morgan-wowk changed the base branch from 01-26-feat_add_unified_errorhandler_component_add_errorhandler_to_unify_error_handling_logic_for_both_react_error_boundaries_and_router_errors._automatically_reports_errors_to_bugsnag_and_provides_consistent_error_display_with_retry_g to graphite-base/1698 January 28, 2026 19:54
@morgan-wowk morgan-wowk changed the base branch from graphite-base/1698 to 01-26-refactor-error-component-names January 28, 2026 19:54
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 9dafa4a to 8415728 Compare January 28, 2026 19:57
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch from 9322f42 to 43d5e44 Compare January 28, 2026 19:57
@morgan-wowk morgan-wowk changed the base branch from 01-26-refactor-error-component-names to graphite-base/1698 January 28, 2026 21:27
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 8415728 to 6c74ead Compare January 28, 2026 21:28
@morgan-wowk morgan-wowk changed the base branch from graphite-base/1698 to 01-26-refactor-error-component-names January 28, 2026 21:28
@morgan-wowk morgan-wowk changed the base branch from 01-26-refactor-error-component-names to graphite-base/1698 January 28, 2026 21:30
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 6c74ead to 584173c Compare January 28, 2026 21:31
@morgan-wowk morgan-wowk changed the base branch from graphite-base/1698 to 01-26-refactor-error-component-names January 28, 2026 21:31
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch 2 times, most recently from 2dfc190 to f7d8484 Compare January 28, 2026 21:49
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch 2 times, most recently from 82614d3 to fccc289 Compare January 28, 2026 21:58
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch 2 times, most recently from 70d8ec2 to b7fff91 Compare January 28, 2026 22:06
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch from fccc289 to 1d5e2eb Compare January 28, 2026 22:06
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch from 1d5e2eb to e18dc07 Compare January 28, 2026 22:12
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch 2 times, most recently from d87bcd2 to 17deda6 Compare January 28, 2026 22:16
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch from e18dc07 to 844c73a Compare January 28, 2026 22:16
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 17deda6 to 89f0750 Compare January 28, 2026 22:28
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch from 844c73a to 5bcb71f Compare January 28, 2026 22:28
Add decoupled ErrorBoundary component that determines which error
reporting service to use. Currently supports Bugsnag, but designed
to be extensible for other services. Integrate into app root.
@morgan-wowk morgan-wowk force-pushed the 01-26-feat_add_top-level_errorboundary_component_add_decoupled_errorboundary_component_that_determines_which_error_reporting_service_to_use._currently_supports_bugsnag_but_designed_to_be_extensible_for_other_services._integrate_into_a branch from 89f0750 to 8d037cb Compare January 28, 2026 22:34
@morgan-wowk morgan-wowk force-pushed the 01-26-refactor-error-component-names branch from 5bcb71f to 15c6748 Compare January 28, 2026 22:34
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.

3 participants