An error boundary catches a render error and shows a fallback with a 'Try again' button that calls `this.setState({ hasError: false })`. The user clicks it, but the SAME broken component immediately throws again and the fallback returns. What is the genuinely correct recovery pattern?
// resetting hasError alone re-renders the same failing subtree