diff --git a/backend/windmill-worker/src/ai_executor.rs b/backend/windmill-worker/src/ai_executor.rs index 16b2771f94..a6bb99c75d 100644 --- a/backend/windmill-worker/src/ai_executor.rs +++ b/backend/windmill-worker/src/ai_executor.rs @@ -995,7 +995,8 @@ pub async fn run_agent( .map(|m| !m.is_empty()) .unwrap_or(false); - if !matches!(history, HistorySource::Messages(_)) && !has_user_message { + // An empty list, such as a messages expression that evaluated to null, is no conversation to send. + if !matches!(&history, HistorySource::Messages(m) if !m.is_empty()) && !has_user_message { return Err(Error::internal_err( "Either 'messages' or 'user_message' must be provided".to_string(), ));