# fix\(mobile\): guard every hostile read path and catch inspector-callback throws · pingdotgg/t3code

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

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

Visibility: public

Requested revision: aeb3582e793fbf6cdabe3d118c1fdf323637a024

Requested commit: aeb3582e793fbf6cdabe3d118c1fdf323637a024

Commit: aeb3582e793fbf6cdabe3d118c1fdf323637a024

Tree: d385f12a2b6507bc46e0e56cc7406c20d399ab96

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(mobile): guard every hostile read path and catch inspector-callback throws

- describeRenderError/recordRenderError/readErrorStack now read message,
  name, and stack through guarded access: an Error subclass with throwing
  getters can no longer explode inside componentDidCatch and defeat the
  recovery it is part of. The recovery view's Copy details uses the same
  guarded stack read. Tests cover hostile getters and ordinary errors.
- The inspector invokes the route-supplied renderer in a dedicated child
  (InspectorRenderer) inside the boundary. Calling it as a children
  expression ran the callback during the pane's own render, above the
  boundary, where it could not be caught.
- ScreenRenderFallback forwards the captured component stack to all three
  exits, so Copy details keeps the component path on every screen fallback.

```

## Parents

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

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