a80aae2bb1
On a cold start (stored refresh token reused before any 401) the eager pre-401 refresh built its URL from the urljoin(origin, "/token") fallback because authorization-server metadata had not been discovered yet. Servers whose token endpoint lives under a path returned 404, the client cleared its stored tokens, and headless clients were forced into an interactive re-auth they cannot perform (#3240, #3250). Run protected-resource + authorization-server metadata discovery before the eager refresh so it targets the discovered token endpoint, applying the same SEP-2352 issuer-binding checks as the 401 discovery path: when the stored credentials are bound to a different issuer they are dropped and the refresh is skipped, so credentials are never presented to an authorization server they are not bound to, and the subsequent 401 flow re-registers cleanly. Servers publishing no metadata keep the previous {origin}/token fallback behavior. Fixes #3240 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CjbXueCDdFNJK6imejCXgM