From ca0bd53bede259c78f78bd4f0ab10303ea3c8b0b Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Mon, 30 Jun 2025 11:31:40 +0200 Subject: [PATCH] agent: Fix an issue with messages containing trailing whitespace (#33643) Seeing this come up in our server logs when sending requests to Anthropic: `final assistant content cannot end with trailing whitespace`. Release Notes: - agent: Fixed an issue where Anthropic requests would sometimes fail because of malformed assistant messages --- crates/agent/src/thread.rs | 1 + crates/language_models/src/provider/anthropic.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 32c376ca67..2f965e232a 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -1343,6 +1343,7 @@ impl Thread { for segment in &message.segments { match segment { MessageSegment::Text(text) => { + let text = text.trim_end(); if !text.is_empty() { request_message .content diff --git a/crates/language_models/src/provider/anthropic.rs b/crates/language_models/src/provider/anthropic.rs index 48bea47fec..aa500f4b4d 100644 --- a/crates/language_models/src/provider/anthropic.rs +++ b/crates/language_models/src/provider/anthropic.rs @@ -528,6 +528,11 @@ pub fn into_anthropic( .into_iter() .filter_map(|content| match content { MessageContent::Text(text) => { + let text = if text.chars().last().map_or(false, |c| c.is_whitespace()) { + text.trim_end().to_string() + } else { + text + }; if !text.is_empty() { Some(anthropic::RequestContent::Text { text,