From 495fc70bd7c5c93360306504790402188ccb20cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5ns?= Date: Mon, 17 Nov 2025 15:50:13 +0100 Subject: [PATCH] Let OAuth discovery skip to next well-known URL candidate on JSON parse error. --- crates/rmcp/src/transport/auth.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/rmcp/src/transport/auth.rs b/crates/rmcp/src/transport/auth.rs index 7ebbb955..a5b3918a 100644 --- a/crates/rmcp/src/transport/auth.rs +++ b/crates/rmcp/src/transport/auth.rs @@ -604,12 +604,14 @@ impl AuthorizationManager { return Ok(None); } - let metadata = response - .json::() - .await - .map_err(|e| AuthError::MetadataError(format!("Failed to parse metadata: {}", e)))?; - debug!("metadata: {:?}", metadata); - Ok(Some(metadata)) + let body = response.text().await?; + match serde_json::from_str::(&body) { + Ok(metadata) => Ok(Some(metadata)), + Err(err) => { + debug!("Failed to parse metadata for {}: {}", discovery_url, err); + Ok(None) // malformed JSON ⇒ try next candidate + } + } } async fn discover_oauth_server_via_resource_metadata(