diff --git a/core/archipelago/src/api/rpc/mod.rs b/core/archipelago/src/api/rpc/mod.rs index c86c564f..0ec4b4b2 100644 --- a/core/archipelago/src/api/rpc/mod.rs +++ b/core/archipelago/src/api/rpc/mod.rs @@ -438,7 +438,13 @@ impl RpcHandler { } } Err(e) => { - error!("RPC error on {}: {}", rpc_req.method, e); + // `{:#}` renders the whole anyhow context chain. Logging only the + // outermost context threw away the actual cause: a peer-files + // failure logged just "Failed to connect to peer", with the real + // error (Tor SOCKS failure, FIPS resolve, timeout) discarded — so + // the logs couldn't distinguish a dead peer from a slow circuit. + // The client-facing message below stays `{}` so internals aren't leaked. + error!("RPC error on {}: {:#}", rpc_req.method, e); let user_message = sanitize_error_message(&e.to_string()); RpcResponse { result: None,