# fix\(mobile\): recover from render errors in-place with scoped boundaries · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/bf13cdf74fb61e4736eed2043cc5487e86e9ce64)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: bf13cdf74fb61e4736eed2043cc5487e86e9ce64

Requested commit: bf13cdf74fb61e4736eed2043cc5487e86e9ce64

Commit: bf13cdf74fb61e4736eed2043cc5487e86e9ce64

Tree: c5aae194d93c2ad57ba9a81c785add2d054b1cfe

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(mobile): recover from render errors in-place with scoped boundaries

A render error anywhere in the mobile app previously reached the global fatal
handler, and expo-updates' ErrorRecovery killed the process. Wrap every root
navigation route (navigator screenLayout) and the thread feed in their own
error boundary: the failed subtree is replaced by a recovery view (retry,
copy diagnostics, go back) while the native header, navigation, and the rest
of the stack stay alive. Caught errors are recorded in a session-scoped
render-error log (deduped by error identity so nested boundaries report once)
and surfaced on the Settings > Diagnostics screen next to the existing
expo-updates startup-crash log, which keeps covering only process fatals.

```

## Parents

- [d7819c18813fa03b033cc1c9472c9acc0ffc0618](https://git.cafe/pingdotgg/t3code/commit/d7819c18813fa03b033cc1c9472c9acc0ffc0618?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/bf13cdf74fb61e4736eed2043cc5487e86e9ce64?format=markdown)
