Because:
- The standalone navigateWithQuery replaced reach/router's navigate() with window.location.assign/replace, which silently drops options.state. The AppContext errorHandler passes isSessionAALUpgrade state through this path for the AAL upgrade flow.
This commit:
- Add registerNavigate to utilities.ts that stores a navigate ref
- Register the navigate function from App on mount via useEffect
- navigateWithQuery uses the registered function when available, falls back to window.location before React mounts