fix: handle JsonRPC error variants as responses (#2903)

This commit is contained in:
Jack Amadeo
2025-06-13 12:05:46 -04:00
committed by GitHub
parent 7506c050db
commit 1326db231e
2 changed files with 8 additions and 1 deletions

View File

@@ -110,6 +110,12 @@ where
let collected_events_after = events.lock().await.len();
assert_eq!(collected_events_after - collected_eventes_before, n_steps);
let error_result = client
.call_tool("add", serde_json::json!({ "a": "foo", "b": "bar" }))
.await;
assert!(error_result.is_err());
println!("Error result: {error_result:#?}\n");
// List resources
let resources = client.list_resources(None).await?;
println!("Resources: {resources:#?}\n");

View File

@@ -135,7 +135,8 @@ where
Ok(message) => {
tracing::info!("Received message: {:?}", message);
match message {
JsonRpcMessage::Response(JsonRpcResponse { id: Some(id), .. }) => {
JsonRpcMessage::Response(JsonRpcResponse { id: Some(id), .. })
| JsonRpcMessage::Error(JsonRpcError { id: Some(id), .. }) => {
service_ptr.respond(&id.to_string(), Ok(message)).await;
}
_ => {