{"version":"2.1.221","anchor":"mcp-oauth-refresh-retries-on-error-codes-and-preserves-issue","canonical_anchor":"mcp-oauth-refresh-retries-on-error-codes-and-preserves-issue","heading":"MCP OAuth refresh retries on error codes and preserves issuer and redirect URI","tier":"notice","area":"MCP","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/mcp-oauth-refresh-retries-on-error-codes-and-preserves-issue","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### MCP OAuth refresh retries on error codes and preserves issuer and redirect URI\n\nMCP OAuth token refresh retries smarter and keeps your saved redirect URI across reconnects.\n\n**What**\n\nToken-refresh retry decisions are made from OAuth error codes rather than exception classes, and stored client registrations keep more of the discovered configuration.\n\n**Details**\n\n- Retries on server_error, temporarily_unavailable, too_many_requests, or any code not in the known non-retryable set.\n- The analytics branch reads `code` instead of `errorCode`.\n- Registrations keep the discovered `issuer` and reuse the previously stored redirectUri when the client_id matches what is on disk.\n- Discovery state is cached on the flow object.\n\n**Evidence**\n\n`mcp_oauth_refresh_unauthorized_client`\n\n- Area: MCP\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 0\/5"}