diff --git a/codex-rs/core/src/tools/registry.rs b/codex-rs/core/src/tools/registry.rs index eb9ede7cb9..4547fe8ebf 100644 --- a/codex-rs/core/src/tools/registry.rs +++ b/codex-rs/core/src/tools/registry.rs @@ -294,8 +294,6 @@ impl ToolRegistry { let display_name = tool_name.display(); let call_id_owned = invocation.call_id.clone(); let otel = invocation.turn.session_telemetry.clone(); - let payload_for_response = invocation.payload.clone(); - let log_payload = payload_for_response.log_payload(); let metric_tags = [ ( "sandbox", @@ -343,6 +341,7 @@ impl ToolRegistry { Some(handler) => handler, None => { let message = unsupported_tool_call_message(&invocation.payload, &tool_name); + let log_payload = invocation.payload.log_payload(); otel.tool_result_with_tags( &display_name, &call_id_owned, @@ -362,6 +361,7 @@ impl ToolRegistry { if !handler.matches_kind(&invocation.payload) { let message = format!("tool {display_name} invoked with incompatible payload"); + let log_payload = invocation.payload.log_payload(); otel.tool_result_with_tags( &display_name, &call_id_owned, @@ -409,6 +409,7 @@ impl ToolRegistry { let invocation_for_tool = invocation.clone(); let started = Instant::now(); + let log_payload = invocation.payload.log_payload(); let result = otel .log_tool_result_with_tags( &display_name,